我有一个用netbeans创建的EJB / Web项目。我用netbeans创建了这个项目,所以我们很快就会有一个工作原型。现在我将其转换为Gradle。 我正在使用耳塞和我的结构
-root
|-- ejb.jar
|-- web.war
正在建设中。我的依赖项在每个子项目(ejb和web)的build.gradle文件中定义。现在我希望我的依赖项位于ear / lib文件夹中,而不是通过ejb / lib和web / lib文件夹进行破坏。 我知道earlib依赖的概念,但我觉得我不需要在我的web和ejb项目中指定它。我是否需要编写一个ant任务来完成这项工作,或者是否有一种优雅的方式。 我试图尽可能好地代表netbeans构建战争。
答案 0 :(得分:0)
正确的解决方案是管理依赖项的范围。
在jar项目中,依赖项放在编译范围内,这没关系,因为jar在打包时不会添加依赖项
在war项目中,依赖项放在providedCompile范围内。这允许我编译我的战争,但不包括我的图书馆。
在我的项目根目录中,我有自己的耳朵构建文件。在这个构建文件中,我重新添加了所有依赖项(这仍然是错误的,因为我已经使用earLib范围定义了两次依赖项)。通过这样做,我的依赖项放在我定义的lib文件夹中的项目的根目录中。