Я хочу разработать веб-приложение (без фреймворков), смешивающее 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?
ps: я знаю о существовании Грааля
ps2: Groovy jar находится в моем пути к классам.
Спасибо тебе за все!




Похоже, что менеджер проектов Java Webapp NetBeans 6.5 не имеет поддержки «Включить Groovy», которая присутствует в проектах библиотеки Java App и Java Class.
Я могу придумать два способа обойти это:
Во-первых, вы можете поместить свой код и тесты 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, вероятно, потребует некоторых настроек, поскольку некоторые свойства между веб-приложением и библиотекой классов немного отличаются.
@ Дэйв Смит,
Именно это я и сделал. Я создал один проект 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 на мой ex:
<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
Спасибо тебе за все!
Хотелось бы, чтобы кто-нибудь подбросил пример groovy-build.xml, чтобы нам не пришлось утруждать себя установкой Grails только для того, чтобы получить это ... и мне интересно, использует ли кто-нибудь даже этот материал, даже поиск на Github по запросу «groovy-build. xml "не предлагает примера!
Все работало нормально (спасибо!), Кроме одной ошибки при компиляции веб-проекта: "javac: invalid flag: $ {javac.compilerargs.jaxws}". Чтобы попробовать, я удалил этот лишний флаг в файле groovy-build.xml, и компиляция прошла успешно. Есть ли альтернатива этому уродливому хаку?