【发布时间】:2016-05-16 04:23:13
【问题描述】:
我想使用 Gradle 构建一个 java 项目,我想将它的结构如下。
- 核心库
- Web 应用(war 插件)
- 服务器(应用插件)
- 客户
- 客户端战争(战争插件)
Web 应用程序、服务器和客户端都依赖于核心。服务器依赖于 Web 应用程序,因为它将使用嵌入式 Jetty 将其用作管理页面。客户战争取决于客户。 Client War 将被部署到 Web 服务器上,以作为 Web 启动应用程序分发客户端。
我想知道的是如何告诉服务器项目它依赖于 Web 应用程序并且需要将其复制到其分布结构中的适当位置。我还想知道如何告诉 Client War 项目依赖于 Client 项目并将 Client jar 及其所有依赖项复制到正确的位置以构建 war 存档。
我计划为服务器使用应用程序插件,因此在<root>/src/dist 下将有一个webapp 目录,其中一个或可能多个网络应用程序将驻留。 webapp目录下的文件应该是war文件。
这是一个新项目,因此它可以遵循 Gradle 的标准构建约定和 Gradle 期望的项目布局。
理想情况下,客户端工件将在某个时候发布到内部 Artifactory 或 Sonatype Nexus 存储库,以便可以在版本支持的情况下构建客户端战争。
到目前为止,我找到了以下资源。
【问题讨论】:
-
我没有尝试将构建统一在一个 build.gradle 文件下。我将其描述为定义一个新的依赖分类(例如 compile、testRuntime、myCustomTransient、packagedApp),我将对其进行特殊处理。
-
那篇文章不是关于单个 build.gradle。您正在寻找配置。
标签: java gradle java-web-start multi-project