运维开发网

Ant基础知识2

运维开发网 https://www.qedev.com 2020-04-22 15:44 出处:网络 作者:运维开发网整理
Ant: 1.在windows上搭建Ant环境,成功后查看版本号 答案: (1)安装jdk,配置环境变量 (2)安装ant,配置环境变量,添加ANT_HOME,在path中加入%ANT_HOME%\bin; 通过 ant -version查看ant版本号   2.ant与maven的区别 答案: (1) Maven约定了目录结构,而Ant没有 (2) Maven是声明式的,用pom.xml文件;而
Ant: 1.在windows上搭建Ant环境,成功后查看版本号 答案: (1)安装jdk,配置环境变量 (2)安装ant,配置环境变量,添加ANT_HOME,在path中加入%ANT_HOME%\bin; 通过 ant -version查看ant版本号   2.ant与maven的区别 答案: (1) Maven约定了目录结构,而Ant没有 (2) Maven是声明式的,用pom.xml文件;而Ant是程序式的,构建过程需要自定义,用build.xml (3) Maven是有生命周期的,而Ant没有。 (4) Maven内置依赖管理和Respository来实现依赖的管理和统一存储;而Ant没有。Maven第一次install的时候会把依赖的jar包和构件从远程库(又叫中央库, http://repo1.maven.org/maven2,统一存储maven可以解释的文件资源)下载到本地库(先从本地仓库找)。maven还可以管理传递依赖。 (5) Maven配置比较简单,有很多的约定/规范/标准,可以用较少的代码干更多的事;而Ant配置比较麻烦,需要配置整个构建的过程(但Ant配置灵活)。   3.脚本执行结果(看视频,理解里面的内容,应该能答出来) Ant会依照depends属性中target出现的顺序依次执行每个target。被依赖的target会先执行。   4.拷贝b目录所有内容到a目录 <copy todir="a">     <fileset dir="b" /> </copy>   5.删除src目录下,以.class为结尾的文件 <delete includeEmptyDirs="true">     <fileset dir="." includes="**/*.class" /> </delete>   6.使用war任务,创建一个java war文件 <war warfile="./java.war" webxml="./WEB-INF/web.xml"></war>   7.使用tstamp输出当前时间     <target name="printnow" description="print now time">         <tstamp>             <format property="timestamp" pattern="yyyy-MM-dd HH:mm:ss"/>         </tstamp>         <echo>${timestamp}</echo>     </target>   8.demo   a.写一个HelloWorld程序 ant createHelloJava   b.编译 ant compile   c.打成jar包 ant jar   d.放在应该的地方 ant put-jar   e.运行 ant run   f.把jar包上传到Linux ant scp-upload2server  
<?xml version="1.0"?>
<project name="a-20181021" default="printnow" basedir=".">
    <property name="base.dir" value="." />
    <property name="src.dir" value="./src" />
    <property name="default.package.name" value="com.xhj.ant"/>
    <property name="default.path.name" value="com/xhj/ant"/>
    
    <property name="build.dir" value="./build" />
    <property name="build.classes" value="${build.dir}/classes" />

    <property name="server.username" value="root" />
    <property name="server.password" value="123456" />
    <property name="server.host" value="127.0.0.1" />
    <property name="server.jarDir" value="/home/root/build" />
    <property name="server.port" value="22" />
    <property name="local.jarDir" value="./build" />
    
    <property name="jar.name" value="hello-1.0"/>
    
    <target name="createHelloJava">
        <mkdir dir="${src.dir}/${default.path.name}"/>
        <echo file="${src.dir}/${default.path.name}/Hello.java">package ${default.package.name};
public class Hello{
    public static void main(String[] args){
        String str = "hello!";
        System.out.println(str);
    }
}
        </echo>
    </target>
    
    <target name="prepare">
        <mkdir dir="${build.dir}" />
        <mkdir dir="${build.classes}" />
        <!-- <mkdir dir="${build.lib}" /> -->
    </target>    

    <target name="compile" depends="prepare,createHelloJava" description="Compiles all source code.">
        <javac srcdir="${src.dir}" destdir="${build.classes}" includeAntRuntime="false">
        </javac>
    </target>
    
    <target name="run" depends="compile">
        <java classname="${default.package.name}.Hello" >
            <classpath path="${build.classes}"/>
        </java>
    </target>

    <target name="jar" depends="compile" description="Generates jar.">
        <!-- Exclude unit tests from the final JAR file -->
        <jar jarfile="./${jar.name}.jar" basedir="${build.classes}" excludes="**/*Test.class,**/Test*.class"/>
    </target>

    <target name="put-jar">
        <move file="./${jar.name}.jar" todir="${build.dir}"/>
    </target>

    <target name="scp-upload2server" description="print now time">
        <scp todir="${server.username}:${server.password}@${server.host}:${server.jarDir}">
            <fileset dir="${local.jarDir}">
                <include name="**/*.jar"/>
            </fileset>
        </scp>
    </target>
</project>

 

  9.内置任务copy copy任务用来给指定的文件或者目录结构创建一份拷贝,并将其放置在指定目录中 例:<copy file="文件名" tofile="文件名" />     // 重命名  ,拷贝文件内容     <copy file="文件名" todir="目录" />        // copy文件到     <target name="copydir">         <copy todir="copy">             <fileset dir="src">                 <include name="**/*.*"/>                 <include name="**/*" />                 <include name="*/*" />                 <include name="/*.*" />                 <exclude name="*.svn/" />             </fileset>         </copy>     </target> 拷贝单个文件:<copy file="myfile.txt" tofile="mycopy.txt" /> 拷贝单个文件到指定目录下:<copy file="myfile.txt" todir="../some/other/dir"> 拷贝一个目录到另外的目录: <copy todir="../new/dir">     <fileset dir="src_dir" /> </copy> 拷贝一批文件到指定目录下 <copy todir="../dest/dir">     <fileset dir="src_dir">         <include name="**/*.java" />         <exclude name="**/Test.java" />     </fileset> </copy> <copy todir="../dest/dir">     <fileset dir="src_dir" excludes="**/*.java"/> </copy>
0

精彩评论

暂无评论...
验证码 换一张
取 消