多模块使用步骤
1、在父项目中添加assembly的插件
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> </plugin> </plugins> </pluginManagement> </build>
2、在父项目的根目录下添加assembly.xml的配置文件

# vim assembly.xml
内容如下:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> <id>full</id> <formats> <format>jar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <dependencySets> <dependencySet> <outputDirectory>/</outputDirectory> <useProjectArtifact>true</useProjectArtifact> <unpack>true</unpack> <scope>runtime</scope> </dependencySet> <dependencySet> <outputDirectory>/</outputDirectory> <useProjectArtifact>true</useProjectArtifact> <unpack>true</unpack> <scope>system</scope> </dependencySet> </dependencySets> </assembly> 说明: includeBaseDirectory: 是否要在jar中包含基础文件夹配置。会在jar中生成一个名称为要打包项目名称的一层目录,通常设计为false
3、在子项目添加插件配置
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptors> <descriptor>assembly.xml</descriptor> </descriptors> <archive> <manifest> <mainClass>com.jeejio.wutong.databaseagent.DataBaseAgentEntry</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
4、执行命令打包
mvn clean compile assembly:single -pl databaseagent -Pdev
注意:本例打包的方法是使用父pom进行打包,所以需要使用(-pl)的参数来指定module的名称,本例中是指对模块databaseagent进行打包操作,打包命令中的compile不能少