2013-06-18 37 views
1

我有一个用netbeans创建的EJB/Web项目。我已经用netbeans创建了这个项目,所以我们可以快速创建一个工作原型。现在我将它转换为Gradle。 我用耳朵插件和我structur在根lib文件夹中放置依赖关系

-root 
|-- ejb.jar 
|-- web.war 

正在建设。我的依赖关系在每个子项目(ejb和web)的build.gradle文件中定义。现在,我希望我的依赖项位于ear/lib文件夹中,而不是在ejb/lib和web/lib文件夹中崩溃。 我知道earlib依赖的概念,但我觉得我不需要在我的web和ejb项目中指定它。我是否需要编写一个蚂蚁任务来完成这个任务,或者有一个优雅的方法。 我试图尽可能地代表netbeans构建战争。

回答

0

正确的解决方案是管理您的依赖关系的范围。

在JAR项目中,依赖是在编译范围的地方,这是确定的,因为包装

时在战争项目罐子不添加依赖关系,依赖被放置在providedCompile范围。这允许我编译我的战争,但不能打包我的库。

在我的项目中,我有我的耳朵建立文件。在这个构建文件中,我用earLib范围重新添加了所有依赖项(这仍然是错误的,因为我已经定义了两次依赖项)。通过这样做,我的依赖关系就放置在我的项目的根目录中,并位于我定义的lib文件夹中。