我在尝试使用多个模块构建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是所有模块的父级,它是一个pom包装
公共类将在公共模块中
服务器和客户端模块都将依赖于常见的
我可以通过发布maven程序集3次正确组装项目
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
在根模块上,将调用两个程序集(在客户端和服务器中),每个程序集将根据自己的程序集描述符运行
我不能使用相同的程序集描述符在两个模块上运行,因为它们的组装方式不同。
客户端与主jar文件中打包的“资源”组合在一起,只有
之外的脚本服务器与主jar文件打包的“资源”组装在一起。
答案 0 :(得分:3)
在你的root 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