Ant插件自定义构建方式
1. pom依赖
springboot项目中,我们可以通过maven-antrun-plugin插件指定一个自定义的文件,在构建项目时就会根据此文件构建。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>package</id>
<phase>package</phase>
<configuration>
<target>
<!--定义一些属性,在auto_zip.xml中,可以通过${属性名}引用-->
<property name="microservice" value="${service.name}"/>
<property name="packagename" value="${service.name}"/>
<property name="parentpath" value="${project.artifactId}"/>
<property name="version" value="${service.version}"/>
<property name="timestamp" value="${maven.build.timestamp}"/>
<!--指定构建文件目录,指定到当前目录(src所在目录)下的config/auto_zip.xml文件-->
<ant antfile="./config/auto_zip.xml">
<!--指定auto_zip.xml中要执行的target标签名-->
<target name="autozip"/>
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
指定文件后,刷新pom,会发现auto_zip.xml变成这个图标。
2. 自定义构建命令
<?xml version="1.0" encoding="UTF-8" ?>
<project name="zip" default="autozip" basedir="../../web/custom-web">
<target name="autozip">
<!-- ${basedir} 属于maven的基本属性,指的是pom.xml文件所在目录 - -->
<property name="conf4Micro" value="${basedir}/config"/>
<!--创建临时目录,路径可以随意指定-->
<mkdir dir="${conf4Micro}/${microservice}/temp"/>
<mkdir dir="${conf4Micro}/${microservice}/temp/src"/>
<mkdir dir="${conf4Micro}/${microservice}/temp/dist"/>
<!--将/bin目录下的所有文件copy到/temp中-->
<copy todir="${conf4Micro}/${microservice}/temp/">
<fileset dir="${conf4Micro}/bin" includes="*.*"/>
</copy>
<!--将target目录下的jar包copy到/temp中,includes要指定好jar包的名称(可以通过pom文件<build>中<finalName>标签指定)-->
<copy todir="${conf4Micro}/${microservice}/temp/">
<fileset dir="${basedir}/target" includes="${microservice}-${version}.jar"/>
</copy>
<!--重新将jar包命名-->
<move file="${conf4Micro}/${microservice}/temp/${microservice}-${version}.jar"
tofile="${conf4Micro}/${microservice}/temp/${microservice}.jar"/>
<!-- <replace file="${conf4Micro}/${microservice}/temp/package.json" token="package_version"-->
<!-- value="${version}.${timestamp}"/>-->
<!--将/temp目录下的所有文件打成zip包,目录及名称由destfile指定-->
<zip destfile="${basedir}/target/${packagename}_${version}.${timestamp}.zip">
<fileset dir="${conf4Micro}/${microservice}/temp"/>
</zip>
<!--删除临时目录-->
<delete dir="${conf4Micro}/${microservice}/temp"/>
<delete dir="${conf4Micro}/${microservice}"/>
</target>
</project>
3. 效果
将项目进行package,在target目录下就会生成一个zip压缩包。可以将压缩包作为一个工具发给别人,解压双击startup.bat后执行jar包,就可执行我们自己的业务逻辑了。