ejb-3.0 - 将依赖项放在根 lib 文件夹中

标签 ejb-3.0 gradle ear java-ee-5

我有一个使用 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/

相关文章:

java - Gradle找不到影子插件

gradle - 如何确保我的Gradle xjc生成总是发生在IntegrationTest目标上?

java - Gradle 生成 Eclipse 项目 EAR 项目

java - 如何从命令行初始化应用程序的 java 对象

jakarta-ee - 在同一个 Gradle 项目中生成 WAR 和 EAR 工件

java - 如何使用 EJB 3.0 实现适当的计数器 bean?

java - EJB 3 中的@Local 注释

java - 查找中未处理的异常 [根异常是 org.omg.CORBA.MARSHAL :

ssl - RMI 返回 EJB 远程对象

gradle - Gradle多应用程序WAR构建文件分为单独的包含的文件- 'def'破坏了它