Groovy, Netbeans и Java EE

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
8
0
3 234
2

Ответы 2

Похоже, что менеджер проектов 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

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

Все работало нормально (спасибо!), Кроме одной ошибки при компиляции веб-проекта: "javac: invalid flag: $ {javac.compilerargs.jaxws}". Чтобы попробовать, я удалил этот лишний флаг в файле groovy-build.xml, и компиляция прошла успешно. Есть ли альтернатива этому уродливому хаку?

Nitin Verma 28.11.2011 11:47

Хотелось бы, чтобы кто-нибудь подбросил пример groovy-build.xml, чтобы нам не пришлось утруждать себя установкой Grails только для того, чтобы получить это ... и мне интересно, использует ли кто-нибудь даже этот материал, даже поиск на Github по запросу «groovy-build. xml "не предлагает примера!

User 31.10.2016 02:02

Другие вопросы по теме