设为首页 收藏本站
查看: 793|回复: 0

[经验分享] 自动部署工具ant

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-20 10:38:49 | 显示全部楼层 |阅读模式
学习ant所做的笔记,根据官方网站所举事例
<?xml version="1.0" ?>
<project name="ant-project" default="print-dir">
    <property name="name" value="jojo" />
    <target name="print-dir">
            <echo message="name: ${name} project: ${ant.project.name} "/>
    </target>
</project>
运行结果如下:
[iyunv@aliyun_test apache-ant-1.9.7]# bin/ant -f /home/huang/test/build.xml
Buildfile: /home/huang/test/build.xml
print-dir:
     [echo] name: jojo project: ant-project    -----》${ant.project.name},系统变量
BUILD SUCCESSFUL
Total time: 0 seconds
上例中用户设置了名为name的属性,这个属性设置后,在下文中可以通过 ${name}取得这两个属性值。

unzip参数:
[iyunv@aliyun_test test]# cat unzip.xml
<project name="unzip_name" default="init">
<property name="src.dir" value="/home/huang/test/src"/>
<property name="dest.dir" value="/home/huang/test/dest"/>
<target name="init" description="compress the Task">
  <unzip src="${src.dir}/build.zip" dest="${dest.dir}" />
</target>
</project>

mkdir创建一个src目录:http://ant.apache.org/manual/Tasks/mkdir.html
[iyunv@aliyun_test test]# cat file.xml
<project name="create" default="number" basedir="/home/huang/test">
<property name="src.dir" value="src"/>
<target name="number">
  <mkdir dir="${src.dir}"/>
</target>
</project>
运行结果:
[iyunv@aliyun_test apache-ant-1.9.7]# bin/ant -f /home/huang/test/file.xml
Buildfile: /home/huang/test/file.xml
number:
    [mkdir] Created dir: /home/huang/test/src
BUILD SUCCESSFUL
Total time: 0 seconds

delete删除一个目录或者文件:http://ant.apache.org/manual/Tasks/delete.html
[iyunv@aliyun_test test]# cat file.xml
<project name="create" default="number" basedir="/home/huang/test">
<property name="src.dir" value="src"/>
<target name="number">
  <delete dir="${src.dir}"/>
</target>
</project>
运行结果:
[iyunv@aliyun_test apache-ant-1.9.7]# bin/ant -f /home/huang/test/file.xml
Buildfile: /home/huang/test/file.xml
number:
   [delete] Deleting directory /home/huang/test/src    ---》删除src目录及其目录下的所有文件
BUILD SUCCESSFUL
Total time: 0 seconds

删除目录中带有.bak结尾的文件
<delete>
   <fileset dir="." includes="**/*.bak"/>   ----》删除当前目录下面到字目录中有.bak的文件
</delete>

copy复制一个文件:http://ant.apache.org/manual/Tasks/copy.html
[iyunv@aliyun_test test]# cat file.xml
<project name="create" default="number" basedir="/home/huang/test">
<property name="src.dir" value="src"/>
<target name="number">
  <copy file="unzip.xml" tofile="unzip.xml_copy"/>       ----》复制一个单文件unzip.xml,unzip.xml_copy
</target>
</project>
运行结果:
[iyunv@aliyun_test apache-ant-1.9.7]# bin/ant -f /home/huang/test/file.xml
Buildfile: /home/huang/test/file.xml
number:
     [copy] Copying 1 file to /home/huang/test
BUILD SUCCESSFUL
Total time: 0 seconds

<copy file="unzip.xml" todir="${src.dir}"/>   复制单文件到目录下
[iyunv@aliyun_test test]# ll src/
total 4
-rw-r--r-- 1 root root 293 Sep 19 14:53 unzip.xml

copy复制一个目录下的所有文件除了某特定的文件:http://ant.apache.org/manual/Tasks/copy.html
[iyunv@aliyun_test test]# cat file.xml
<project name="create" default="number" basedir="/home/huang/test">
<property name="src.dir" value="src"/>
<property name="dest.dir" value="dest"/>
<target name="number">
  <mkdir dir="${dest.dir}"/>
  <copy todir="${dest.dir}">
   <fileset dir="${src.dir}" excludes="**/*.xml"/>    ----》excludes:排除某个特定文件
  </copy>
</target>
</project>
运行如下:
[huang@aliyun_test apache-ant-1.9.7]$ bin/ant -f /home/huang/test/file.xml
Buildfile: /home/huang/test/file.xml
number:
     [copy] Copying 1 file to /home/huang/test/dest
BUILD SUCCESSFUL
Total time: 0 seconds

copy将某目录下面的所有文件全部copy为.bak模式
[huang@aliyun_test test]$ cat file.xml
<project name="create" default="number" basedir="/home/huang/test">
<property name="src.dir" value="src"/>
<property name="dest.dir" value="dest"/>
<target name="number">
  <copy todir="${dest.dir}">
   <fileset dir="${src.dir}"/>
   <globmapper from="*" to="*.bak"/>
  </copy>
</target>
</project>
运行效果如下:
[huang@aliyun_test apache-ant-1.9.7]$ bin/ant -f /home/huang/test/file.xml
Buildfile: /home/huang/test/file.xml
number:
     [copy] Copying 2 files to /home/huang/test/dest
     [copy] Copied 1 empty directory to 1 empty directory under /home/huang/test/dest
BUILD SUCCESSFUL
Total time: 0 seconds
[huang@aliyun_test test]$ ll dest/
total 4
-rw-rw-r-- 1 huang huang   0 Sep 19 15:40 test.txt.bak
-rw-rw-r-- 1 huang huang 293 Sep 19 15:40 unzip.xml.bak

一个jar程序的编译运行过程:
<project name="HelloWorld" basedir="/home/huang/test/" default="main">
    <property name="src.dir"     value="src"/>
    <property name="build.dir"   value="build"/>
    <property name="classes.dir" value="${build.dir}/classes"/>
    <property name="jar.dir"     value="${build.dir}/jar"/>
    <property name="main-class"  value="oata.HelloWorld"/>
    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>
    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}"/>   
    </target>
    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
                #######${ant.project.name}----->HelloWorld(<project name="HelloWorld")
            <manifest>
                <attribute name="Main-Class" value="${main-class}"/>
            </manifest>
        </jar>
    </target>
    <target name="run" depends="jar">
        <java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
    </target>
    <target name="clean-build" depends="clean,jar"/>
    <target name="main" depends="clean,run"/>
</project>
Now it's easier, just do a ant and you will get
Buildfile: build.xml
clean:
compile:
    [mkdir] Created dir: C:\...\build\classes
    [javac] Compiling 1 source file to C:\...\build\classes
jar:
    [mkdir] Created dir: C:\...\build\jar
      [jar] Building jar: C:\...\build\jar\HelloWorld.jar
run:
     [java] Hello World
main:
BUILD SUCCESSFUL


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-274858-1-1.html 上篇帖子: 如何在Linux下安装xs-tool.iso 下篇帖子: 加速与缓存技术之Varnish
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表