怎么把两个maven工程打包成一个jar包
时间: 2023-12-10 17:37:27 浏览: 84
maven打包web项目时同时打包为war和jar文件的方法
将两个 Maven 工程打包成一个 JAR 包的方法如下:
1. 在第一个 Maven 工程的 pom.xml 文件中,添加以下代码:
```
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>${project.artifactId}-${project.version}</finalName>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
```
2. 在第二个 Maven 工程的 pom.xml 文件中,添加以下代码:
```
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<outputDirectory>${project.build.directory}/lib/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
```
3. 在第二个 Maven 工程的 src/main/resources/META-INF 目录下,新建一个 MANIFEST.MF 文件,并添加以下代码:
```
Manifest-Version: 1.0
Class-Path: lib/
```
4. 执行以下命令来打包两个 Maven 工程:
```
cd first-maven-project
mvn clean package
cd ../second-maven-project
mvn clean package
```
5. 将第一个 Maven 工程的 target 目录下的 JAR 包和第二个 Maven 工程的 target 目录下的 JAR 包一起复制到一个新的目录中。
6. 执行以下命令来将两个 JAR 包合并成一个 JAR 包:
```
cd new-directory
jar -xf first-maven-project.jar
jar -xf second-maven-project.jar
jar -cmf second-maven-project/META-INF/MANIFEST.MF merged.jar *
```
7. 最后,运行 merged.jar 文件即可。
阅读全文