Ant编译JavaWeb项目

Ant编译JavaWeb项目

What(起因)

因为要将老项目做到CD(持续部署)中,所以需要通过第三方软件编译工具(Ant)进行打包发布,再通过Jenkins执行Ant编译脚本获取编译后文件,做到CD。

Why(何解)

<?xml version="1.0"?>
<project name="antName" default="jar" basedir=".">
	<target name="clean">
		<delete dir="build"/>
	</target>
	<path id="classpath">
		<fileset dir="jdk1.7.0_60.jdk/Contents/Home/jre/lib">
			<include name="*.jar"/>
		</fileset>
		<fileset dir="jdk1.7.0_60.jdk/Contents/Home/lib">
			<include name="*.jar"/>
		</fileset>
		<fileset dir="WebRoot/WEB-INF/lib">
			<include name="*.jar"/>
		</fileset>
	</path>

	<target name="init" description="构建工程">
		<delete dir="build"/>
		<echo message="编译所有JAVA类 begin"/>
		<mkdir dir="build" />
		<mkdir dir="build/WebRoot" />
		<mkdir dir="build/WebRoot/admin" />
		<mkdir dir="build/WebRoot/site" />
		<mkdir dir="build/WebRoot/toHtml" />
		<mkdir dir="build/WebRoot/WEB-INF" />
		<mkdir dir="build/WebRoot/WEB-INF/classes" />
		<javac srcdir="." destdir="build/WebRoot/WEB-INF/classes" debug="true" fork="true" executable="jdk1.7.0_60.jdk/Contents/Home/bin/javac"  encoding="utf-8" target="1.7" source="1.7" debuglevel="lines,vars,source" nowarn="true" includeAntRuntime="no" failonerror="true">
			<classpath refid="classpath"/>
			<include name="**/*.*" />
		</javac>
		<echo message="编译所有JAVA类 end" />
		<echo message="将admin、toHtml、site拷贝到目录下 start" />
		<copy todir="build/WebRoot/admin" overwrite="true">
			<fileset dir="WebRoot/admin" includes="**/*"/>
		</copy>
		<copy todir="build/WebRoot/site" overwrite="true">
			<fileset dir="WebRoot/site" includes="**/*"/>
		</copy>
		<copy todir="build/WebRoot/toHtml" overwrite="true">
			<fileset dir="WebRoot/toHtml" includes="**/*"/>
		</copy>
		<echo message="将admin、toHtml、site拷贝到目录下 end" />
	</target>
</project>

以上是本次需要的ant的内容,其中有两个targetcleaninit分别是删除工程目录下build文件和初始化工程目录下build文件,build中有一个WebRoot是编译后可直接发布到Tomcat下的工程文件,下面对它进行一个简要的解释:

  • 作用
    用于编译项目中所有.java文件,并且将WebRoot下指定文件(site、admin、toHtml)拷贝到指定目录下,生成一个可发布的WebRoot(按项目需求进行调整
  • 标签
    • target(要做的事)
    • javac(JDK - javac命令)
    • copy(拷贝)
    • echo(输出语句)

结语

由于是10年的项目了,所以通过引用ant来完成编译,其实ant可以完成很多事情,也可以使用maven、gradle,一切按项目需求进行,现在的SpringCloud应用的是Maven和Gradle。

猜你喜欢

转载自blog.csdn.net/Cy_LightBule/article/details/85089960