具有多个模块和多个程序集的 Maven 项目
Maven project with multiple module and multiple assembly
我在尝试构建具有多个模块的 Maven 项目时遇到困难,并且每个模块都有自己的程序集。
一开始我不太确定这是否可以在 maven 中完成。
我的项目结构如下:
project
+- root
| +- pom.xml
+- module-common
| +- pom.xml
| +- src
| | +- main
| | | +- java
| | +- test
| | +- java
| +- target
+ module-client
| +- pom.xml
| +- src
| | +- main
| | +- java
| | +- assembly
| | +- scripts
| | +- resources
| | +- test
| | +- java
| +- target
+ module-server
+- src
| +- main
| | +- java
| | +- assembly
| | +- scripts
| | +- resources
| +- test
| +- java
+- target
解释结构的几个关键点
我正在尝试创建一个远程处理应用程序,因此是服务器和客户端组件
root 是 all 模块的父级,它是一个 pom 包装
公共模块类将在公共模块
服务器和客户端模块都将依赖common
我可以 assemble 通过发出 3 次 maven 程序集来正确地完成项目
mvn clean package (on the root)
mvn clean package assembly:single (on the client)
mvn clean package assembly:single (on the server)
我正在尝试找到一种可以直接调用的方法
mvn clean package
在根模块上,将调用两个程序集(在客户端和服务器中),每个程序集将 运行 根据其自己的程序集描述符
我不能在两个模块上对 运行 使用相同的程序集描述符,因为它们 assembled 不同。
客户端是assembled,"resource"打包在主jar文件里,外面只有脚本
服务器是 assembled,"resource" 从主 jar 文件中打包出来。
在你的根 pom.xml 中添加:
<modules>
<module>module-common</module>
<module>module-client</module>
<module>module-server</module>
</modules>
并使用此文件夹结构:
project
+- root
+- pom.xml
+- module-common
| +- pom.xml
| +- src
| | +- main
| | | +- java
| | +- test
| | +- java
| +- target
+ module-client
| +- pom.xml
| +- src
| | +- assembly
| | +- main
| | +- java
| | +- scripts
| | +- resources
| | +- test
| | +- java
| +- target
+ module-server
+- src
| +- assembly
| +- main
| | +- java
| | +- scripts
| | +- resources
| +- test
| +- java
+- target
我在尝试构建具有多个模块的 Maven 项目时遇到困难,并且每个模块都有自己的程序集。
一开始我不太确定这是否可以在 maven 中完成。
我的项目结构如下:
project
+- root
| +- pom.xml
+- module-common
| +- pom.xml
| +- src
| | +- main
| | | +- java
| | +- test
| | +- java
| +- target
+ module-client
| +- pom.xml
| +- src
| | +- main
| | +- java
| | +- assembly
| | +- scripts
| | +- resources
| | +- test
| | +- java
| +- target
+ module-server
+- src
| +- main
| | +- java
| | +- assembly
| | +- scripts
| | +- resources
| +- test
| +- java
+- target
解释结构的几个关键点
我正在尝试创建一个远程处理应用程序,因此是服务器和客户端组件
root 是 all 模块的父级,它是一个 pom 包装
公共模块类将在公共模块
服务器和客户端模块都将依赖common
我可以 assemble 通过发出 3 次 maven 程序集来正确地完成项目
mvn clean package (on the root)
mvn clean package assembly:single (on the client)
mvn clean package assembly:single (on the server)
我正在尝试找到一种可以直接调用的方法
mvn clean package
在根模块上,将调用两个程序集(在客户端和服务器中),每个程序集将 运行 根据其自己的程序集描述符
我不能在两个模块上对 运行 使用相同的程序集描述符,因为它们 assembled 不同。
客户端是assembled,"resource"打包在主jar文件里,外面只有脚本
服务器是 assembled,"resource" 从主 jar 文件中打包出来。
在你的根 pom.xml 中添加:
<modules>
<module>module-common</module>
<module>module-client</module>
<module>module-server</module>
</modules>
并使用此文件夹结构:
project
+- root
+- pom.xml
+- module-common
| +- pom.xml
| +- src
| | +- main
| | | +- java
| | +- test
| | +- java
| +- target
+ module-client
| +- pom.xml
| +- src
| | +- assembly
| | +- main
| | +- java
| | +- scripts
| | +- resources
| | +- test
| | +- java
| +- target
+ module-server
+- src
| +- assembly
| +- main
| | +- java
| | +- scripts
| | +- resources
| +- test
| +- java
+- target