繁体   English   中英

Groovy,Netbeans和Java EE

[英]Groovy, Netbeans and Java EE

我想开发一个将java与groovy混合的Web应用程序(没有框架)。 我正在使用带有插件的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)

有没有人知道如何在netbeans中启用Java EE + Groovy?

ps:我知道Grails的存在

ps2:Groovy jar在我的类路径中。

感谢你所做的一切!

似乎NetBeans 6.5 Java Webapp项目管理器没有Java App和Java类库项目中的“启用Groovy”支持。

我可以想到两种方法可以解决这个问题:

首先,您可以将Groovy代码和测试作为Java类库放在单独的项目中。 然后使Java webapp依赖于Groovy项目。 NetBeans将自动构建依赖项目,因此您几乎不会注意到它们位于单独的项目中。

其次,“启用Groovy”并不神奇。 它所做的只是在/ nbprojects中编写groovy-build.xml并修改build-impl.xml以导入它。 groovy-build.xml会覆盖默认的“javac”宏来调用“groovyc”。 如果您对Ant非常方便,可以从Java Application项目中复制groovy-build.xml并将其复制到Java Web项目,然后从build.xml导入它(在导入build-impl.xml之前) )。 groovy-build.xml可能需要一些调整,因为webapp和类库之间的一些属性有点不同。

@Dave Smith,

这正是我所做的。 我创建了一个javase项目和一个webapp并开始比较它们。 几分钟后,我意识到唯一的区别是groovy-build.xml。

所以我将groovy-build.xml复制到dir中,并将以下行插入到我的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

感谢你所做的一切!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM