maven 增量打包并且打包带注释
在 maven 项目中,每次改动打包后 jar 包都很大,上传到服务器占用带宽很大,在没引入新的依赖前提下,我们只修改了工程代码,这个时候增量打包是最合适的。
pom 文件配置
<build>
<!--指定打包名称-->
<finalName>${project.artifactId}</finalName>
<plugins>
<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>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<!--必须为ZIP模式,不指定的话-Dloader.path不生效-->
<layout>ZIP</layout>
<!-- 打包的时候排除的jar包-->
<includes>
<include>
<groupId>non-exists</groupId>
<artifactId>non-exists</artifactId>
</include>
</includes>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<!--打包带注释-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在 pom 文件中新增以上配置,然后运行maven 打包命令
mvn clean package
打包目录
运行上面的打包命令后,在工程的 target
目录中,可以看到以下产物:
其中只有 工程代码jar包和外部依赖包 /lib
是有用的,其余都可以删除。拷贝到你的部署目录,或者更新工程代码jar包,上图为 uhaiin.jar
,在没有引入新的依赖情况下, /lib
可以不进行替换,或者说引入或者删除了pom的一些依赖,只要对其 /lib
目录和生产的目录即可
启动项目
因为 pom 文件引入的第三方依赖已经和工程代码分离了出来,所以我们在启动时候指定外部依赖目录,启动命令如下:
java -Dloader.path=lib -jar uhaiin.jar
根据实际修改命令