我有一个使用 netbeans 创建的 EJB/Web 项目。我已经用 netbeans 创建了这个项目,所以我们很快就会有一个工作原型(prototype)。现在我将其转换为 Gradle。
我正在使用耳插件和我的结构
-root
|-- ejb.jar
|-- web.war
正在 build 。我的依赖项在每个子项目(ejb 和 web)的 build.gradle 文件中定义。现在我希望我的依赖项位于 ear/lib 文件夹中,而不是分散在 ejb/lib 和 web/lib 文件夹中。
我知道earlib依赖的概念,但我觉得我不需要在我的web和ejb项目中指定这个。我需要编写一个 Ant 任务来完成这项工作还是有一种优雅的方式。
我试图尽可能好地代表 netbeans 构建 war 。
最佳答案
正确的解决方案是管理依赖项的范围。
在jar项目中,依赖放在compile范围内,这样可以的,因为jar在打包时不会添加依赖
在 war 项目中,依赖项放在 providedCompile 范围内。这允许我编译我的 war ,但不能打包我的库。
在我的项目的根目录中,我有我的耳朵构建文件。在这个构建文件中,我用 earLib 范围重新添加了所有依赖项(这仍然感觉不对,因为我已经定义了两次依赖项)。通过这样做,我的依赖项位于我定义的 lib 文件夹中我的项目的根目录中。
关于ejb-3.0 - 将依赖项放在根 lib 文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17178645/