pom打增量包,使用mvn命令对pom.xml打增量包
我有一个项目命名为:airline,里面module有:airline-rest, airline-common, airline-mapper, airline-admin, airline-core等模块。
因为运维强制要求: 将每次mvn的特别大的集成jar包,改成增量包形式。
airline-rest, airline-admin就需要打成增量包的形式。
一.pom.xml配置
先看下airline-rest, airline-admin的pom.xml配置文件
<build> <plugins> <!--打包jar--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <!--不打包资源文件--> <excludes> <exclude>*.**</exclude> <exclude>*/*.xml</exclude> </excludes> <archive> <manifest> <addClasspath>true</addClasspath> <!--MANIFEST.MF 中 Class-Path 加入前缀--> <classpathPrefix>lib/</classpathPrefix> <!--jar包不包含唯一版本标识--> <useUniqueVersions>false</useUniqueVersions> <!--指定入口类: 比如我的test-rest中的application路径是:com.xxx.rest.Application, 同时它也是程序的主入口--> <mainClass>com.xxx.rest.Application</mainClass> </manifest> <manifestEntries> <!--MANIFEST.MF 中 Class-Path 加入资源文件目录--> <Class-Path>./resources/</Class-Path> </manifestEntries> </archive> <outputDirectory>${project.build.directory}</outputDirectory> </configuration> </plugin> <!--拷贝依赖 copy-dependencies--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/lib/ </outputDirectory> </configuration> </execution> </executions> </plugin> <!--拷贝资源文件 copy-resources--> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> <outputDirectory>${project.build.directory}/config</outputDirectory> </configuration> </execution> </executions> </plugin> <!--spring boot repackage,依赖 maven-jar-plugin 打包的jar包 重新打包成 spring boot 的jar包--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖--> <includes> <include> <groupId>null</groupId> <artifactId>null</artifactId> </include> </includes> <layout>ZIP</layout> <!--使用外部配置文件,jar包里没有资源文件--> <addResources>true</addResources> <outputDirectory>${project.build.directory}</outputDirectory> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <!--配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar --> <!--配置jar包特殊标识 不配置,原文件命名为 *.jar.original,生成新文件 *.jar --> <!--<classifier>run</classifier>--> </configuration> </execution> </executions> </plugin> </plugins> <finalName>${project.artifactId}</finalName> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.*</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </resource> </resources> </build>
二.mvn打包
cmd里面输入:mvn clean install test.skip=true
三.将生成的jar部署
进入到:targe文件夹,将: config、lib、airline-rest.jar拷贝出来,交给运维部署
如何打增量包呢?
一.创建一个git仓库,
将打好的airline-rest.jar、config、lib上传到git中,输入内容为:第一次
二.根据需求修改代码,打增量包
将修改好的代码进行: mvn打包。
将打好的, airline-rest.jar、config、lib上传到git中,输入内容为:第二次
三.打增量包
3.1.右击当前git项目:TortoiseGit->显示日志,如下
3.2复制第一次打包的SHA-1:
SHA-1: f3ada7f832949fec8b7ef5274e4574b9f656908b
3.3打增量包:
右击进入:Git Bash here命令行
输入打增量包命令
tar czvf airline-rest.tar.gz $(git diff f3ada7f832949fec8b7ef5274e4574b9f656908b --name-only)
记住:复制的SHA-1,一定是上一次commit提交的数据,
四.交给运维部署