Groovy, NetBeans и Java EE - PullRequest
       26

Groovy, NetBeans и Java EE

8 голосов
/ 06 января 2009

Я хочу разработать веб-приложение (без фреймворков), смешивающее Java с Groovy. Я использую IDE Netbeans с плагином.

Если я запускаю новый проект Java SE и добавляю класс groovy, он работает без проблем ... но когда я создаю новый проект Java EE и добавляю класс groovy, он не может скомпилироваться и показывает следующую ошибку:

/home/webcodei/NetBeansProjects/testeGroovyWeb/src/java/pacote/Hello.java:23: cannot find symbol 

symbol  : class Hroovy
location: class pacote.Hello
            Hroovy h = new Hroovy();
/home/webcodei/NetBeansProjects/testeGroovyWeb/src/java/pacote/Hello.java:23: cannot find symbol
symbol  : class Hroovy
location: class pacote.Hello
            Hroovy h = new Hroovy();
2 errors
/home/webcodei/NetBeansProjects/testeGroovyWeb/nbproject/build-impl.xml:383: The following error         occurred while executing this line:
/home/webcodei/NetBeansProjects/testeGroovyWeb/nbproject/build-impl.xml:211: Compile failed; see     the compiler error output for details.
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

Кто-нибудь знает, как включить Java EE + Groovy в NetBeans?

пс: я знаю существование Грааля

ps2: Groovy jar находится в моем классе.

Спасибо за все!

Ответы [ 2 ]

5 голосов
/ 08 января 2009

@ Дейв Смит,

Это было именно то, что я сделал. Я создал один проект javase и одно веб-приложение и начал сравнивать их. Через несколько минут я понял, что единственным отличием является groovy-build.xml.

Итак, я скопировал groovy-build.xml в каталог и вставил следующие строки в свой build.xml:

<import file="nbproject/groovy-build.xml"/>

Прямо перед обычным

<import file="nbproject/build-impl.xml"/>

И затем вызвал файл groovy для перезаписи -init-macrodef-javac.

<target depends="-groovy-init-macrodef-javac" name="-pre-compile">

</target> 

Мне также нужно было изменить пространство имен с groovy-build.xml на мое, например:

<macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2"> 

И вставил путь к классу j2ee ($ {j2ee.platform.classpath}) в атрибут несколькими строками позже:

<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/> 

После этого проект работал успешно! = D

Спасибо за все!

5 голосов
/ 07 января 2009

Похоже, что у менеджера проектов Java Webapp NetBeans 6.5 нет поддержки «Включить Groovy», которая присутствует в проектах Java App и библиотеки классов Java.

Я могу придумать два способа обойти это:

Во-первых, вы можете поместить свой код Groovy и тесты в отдельный проект в виде библиотеки классов Java. Затем сделайте Java-приложение зависимым от проекта Groovy. NetBeans создаст зависимый проект автоматически, поэтому вы вряд ли заметите, что они находятся в отдельных проектах.

Во-вторых, «Включить Groovy» не волшебство. Все, что он делает, это пишет groovy-build.xml в / nbprojects и модифицирует build-impl.xml для его импорта. Groovy-build.xml переопределяет макрос "javac" по умолчанию, чтобы вместо этого вызывать "groovyc". Если вам вообще пригодится Ant, вы можете скопировать groovy-build.xml из проекта Java-приложения и скопировать в ваш веб-проект Java, а затем импортировать его из вашего build.xml (до импорта build-impl.xml). ). В groovy-build.xml, вероятно, потребуется несколько настроек, поскольку некоторые свойства веб-приложения и библиотеки классов немного отличаются.

...