maven将java项目打成jar包,怎么把依赖一起打进去
时间: 2024-03-17 17:42:15 浏览: 127
如果你想将所有依赖项一起打进 jar 包中,可以使用 Maven 插件 `maven-assembly-plugin` 或者 `maven-shade-plugin`。
下面是使用 `maven-assembly-plugin` 插件的例子,将所有依赖项打包到一个大的 jar 包中:
1. 在 pom.xml 文件中添加以下内容:
```xml
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
```
这个配置指定了 `maven-assembly-plugin` 插件的版本号、打包方式以及执行时机。其中,`descriptorRefs` 指定了使用哪个打包描述符,这里使用了 `jar-with-dependencies` 描述符,意味着将所有依赖项打包到同一个 jar 包中。
2. 执行 `mvn package` 命令打包项目。打包完成后,你将在 `target` 目录下找到一个以 `-jar-with-dependencies` 结尾的 jar 包,这个 jar 包中包含了所有的依赖项。
如果你使用的是 `maven-shade-plugin`,可以将上面的 `maven-assembly-plugin` 替换为以下内容:
```xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.MainClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
```
这个配置与 `maven-assembly-plugin` 类似,也是将所有依赖项打包到同一个 jar 包中,并指定了主类名。
阅读全文