无论走到哪里,都应该记住,过去都是假的,回忆是一条没有尽头的路,一切以往的春天都不复存在,就连那最坚韧而又狂乱的爱情归根结底也不过是一种转瞬即逝的现实。——马尔克斯《百年孤独》
1、build.xml配置
由于项目需求,自动化部署需要自动编译,打包源文件,项目的架构比较特殊有三个子module,本配置实际证明适合多module配置上线。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project [<!ENTITY buildfile SYSTEM "file:./build-user.xml">]>
<project basedir="." default="deploy" name="demo">
// 定义程序变量,mvnJDK8是构建机预装的mvn程序
<property name="mvn" value="mvnJDK8" />
<property name="node" value="node"/>
// 定义目录
<property name="web.dir" value="src/main/webapp"/>
<property name="dist.dir" value="target"/>
<property name="compress.dir" value="compressed"/>
<property name="weblib.dir" value="${web.dir}/WEB-INF/lib"/>
<property name="webinf.dir" value="${web.dir}/WEB-INF/"/>
<property name="classes.dir" value="${webinf.dir}/classes"/>
<property name="baseline.dir" value="${basedir}"/>
<property name="artifact.dir" value="${baseline.dir}/compressed"/>
// 定义程序变量,nej-build是构建机安装好的nej构建程序
<property name="nej-build" value="nej-build"/>
//清理 一些文件夹,千万不要删掉这些代码
<target name="clean">
<delete dir="${dist.dir}"/>
<delete dir="${compress.dir}"/>
</target>
//继续清理 一些文件夹
<target name="package" depends="clean">
<exec dir="${baseline.dir}" executable="${mvn}" failonerror="true">
<arg line="clean package -U -Dmaven.test.skip=true"/>
</exec>
</target>
//压缩前端任务
<target name="compress-web">
<mkdir dir="${compress.dir}"/>
<copy todir="${compress.dir}" overwrite="true">
// xxx为项目名称,xxx-web为运行包
<fileset dir="xxx-web/target/xxx"/>
</copy>
</target>
// 开始部署系统到服务器上
<target name="deploy">
<echo message="begin auto deploy......"/>
<antcall target="package"/>
<antcall target="compress-web"/>
</target>
</project>