Maven 打包生成 jar
有两种打包方式:
jar
包含依赖jar
和lib
(1)jar
包含依赖
- 在
pom.xml
加入
<build>
<finalName>netty-demo</finalName>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>HttpHelloWorldServer</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>
-
替换
netty-demo
为想要的jar
包名 -
更改启动类
<mainClass>HttpHelloWorldServer</mainClass>
将HttpHelloWorldServer
更改为你想要的启动类 -
打包
在项目的根目录运行
mvn clean package
会在 ./target/
生成两个jar
例如:
netty-demo.jar
不包含依赖
netty-demo-jar-with-dependencies.jar
包含依赖
(2)生成jar
和 lib
- 修改
pom.xml
<build>
<plugins>
<!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>HttpHelloWorldServer</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- 拷贝依赖的jar包到lib目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 直接打包
mvn clean package
Tips:若要移动,需要将lib
和jar
一起移动哦!!!