这件事可做,但是做的时候有点无奈而已。
我知道你一定会说,用 maven
就行了为什么还要用 ant
,变态......不巧的是,某银行就有这方面的要求。所以还是回忆了一下这个技术。
首先原来的项目是基于 maven
的,所以第一步就是下载依赖,然后是打包成 spring
的 jar
包。
需要两个额外的 jar
包,放在 bin
目录下:
maven-ant-tasks-2.1.3.jar
spring-boot-antlib-2.0.5.RELEASE.jar
ant
使用 build
作为输出的目录结构,区别于 target
。
下面是 build.xml
配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
| <?xml version="1.0" encoding="UTF-8"?> <project xmlns:artifact="antlib:org.apache.maven.artifact.ant" xmlns:spring-boot="antlib:org.springframework.boot.ant" name="projectName" default="default" basedir="bin"> <description>Builds, tests, and runs the project dsolrcloud.</description>
<!-- 配置开发环境 --> <property environment="env"/>
<property name="spring-boot.version" value="2.0.5.RELEASE" />
<property name="version" value="1.0"/> <property name="project" value="projectName"/> <property name="package" value="projectName"/> <property name="domain" value="com.zhoyq"/>
<!-- 项目源代码目录 --> <property name="src.dir" location="${user.dir}/src/main/java"/> <!-- javac编译后生成的class文件路径 --> <property name="build.dir" location="${user.dir}/build/classes" /> <!-- 最终生成jar包的路径 --> <property name="dist.dir" location="${user.dir}/build/dist"/> <!-- 项目配置文件路径 --> <property name="config.dir" location="${user.dir}/src/main/resources" /> <!-- 项目生成JavaDoc文件路径 --> <property name="doc.dir" location="${user.dir}/build/doc"/>
<!-- maven-ant-tasks 下载maven依赖jar包的存放路径 --> <property name="lib.dir" location="${user.dir}/build/dependency"/>
<path id="classpath"> <fileset dir="${lib.dir}" includes="**/*.jar"/> </path>
<target name="clean" description="清理ant编译文件"> <delete dir="${user.dir}/build" /> </target>
<target name="mkdir" description="建立文件夹"> <mkdir dir="${dist.dir}"/> <mkdir dir="${build.dir}"/> <mkdir dir="${lib.dir}"/> <mkdir dir="${doc.dir}"/> </target>
<target name="dependency" depends="mkdir" description="配置ant自动下载maven的依赖包"> <!-- 下载maven依赖--> <path id="maven-ant-tasks.classpath" path="${user.dir}/bin/maven-ant-tasks-2.1.3.jar" /> <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />
<artifact:dependencies filesetId="mavenlib" pathId="mavenclasspath" useScope="runtime"> <pom file="${user.dir}/pom.xml" /> </artifact:dependencies>
<copy todir="${lib.dir}"> <fileset refid="mavenlib" /> <mapper type="flatten" /> </copy> </target>
<target name="compile" depends="dependency" description="编译代码"> <!-- 编译所有的Java代码 --> <javac srcdir="${src.dir}" destdir="${build.dir}" encoding="UTF-8" includeantruntime="no" excludes="**/test/*,**/test/bean/*,**/*.svn,*.svn" includes="**/*.java" source="1.8" target="1.8" deprecation="true" failonerror="true" debug="true"> <classpath refid="classpath" /> </javac>
<!-- 把所有文件copy到build目录 --> <copy todir="${build.dir}"> <fileset dir="${config.dir}" includes="**/*"/> </copy> </target>
<!-- 生成Javadoc 文档 --> <target name="javadoc" description="生成Javadoc文档"> <delete dir="${doc.dir}"/> <mkdir dir="${doc.dir}"/> <javadoc packagenames="com.zhoyq.*" sourcepath="${src.dir}" destdir="${doc.dir}" windowtitle="${project} Javadoc" use="yes" linksource="no" splitindex="yes" encoding="UTF-8" docencoding="GBK" locale="zh_CN"> <classpath refid="classpath"/> <packageset dir="${src.dir}" defaultexcludes="yes"> <include name="${domain}/${package}/**"/> </packageset> </javadoc> </target>
<target name="package" depends="compile" description="打jar包" > <tstamp> <format property="TIME" pattern="yyMMddHHmm"/> </tstamp> <path id="spring-boot-antlib.classpath" path="${user.dir}/bin/spring-boot-antlib-2.0.5.RELEASE.jar" /> <typedef resource="org/springframework/boot/ant/antlib.xml" uri="antlib:org.springframework.boot.ant" classpathref="spring-boot-antlib.classpath" />
<spring-boot:exejar destfile="${dist.dir}/${project}-${version}-${TIME}.jar" classes="${build.dir}" start-class="com.zhoyq.App"> <lib> <fileset dir="${lib.dir}" /> </lib> </spring-boot:exejar> </target>
<target name="default" depends="clean, package, javadoc">
</target>
</project>
|
修改对应参数,然后运行 ant
即可。