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>

Ant基础知识2的更多相关文章

  1. Ant基础知识1

    1.Ant简介 Apache Ant是一个将软件编译/测试/部署等步骤联系在一起加以优化的一个构建工具,常用于java环境中的软件开发.Ant的默认配置文件是build.xml. 对java语言的支持 ...

  2. Ant学习-001-ant 基础知识及windows环境配置

    一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...

  3. React入门---基础知识-大纲-1

    -----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...

  4. Spring Ioc源码分析系列--Ioc的基础知识准备

    Spring Ioc源码分析系列--Ioc的基础知识准备 本系列文章代码基于Spring Framework 5.2.x Ioc的概念 在Spring里,Ioc的定义为The IoC Containe ...

  5. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  6. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  7. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  8. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  9. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

随机推荐

  1. 数组操作方法(包括es5)

    //push(); 定义:可以可向数组的末尾添加一个或更多元素,并返回新的长度. 方法:push(); 语法:数组.push(新元素1,新元素2,....,新元素x) 返回值:把指定的值添加到数组后的 ...

  2. Wshshell 脚本简单学习

    WshShell 的简单语法 学习 同事给了一个脚本自动执行  部署命令 感觉挺好的 , 年前一直说要学习一下 但是一直没有学习(自己太懒了) 这次简单总结一下. 创建对象: Set WshShell ...

  3. [同事转帖] .net core的服务器模式和工作站模式

    发现自己的服务器上面的进程占用越来越厉害 所以就跟同事讨论了一下 性能组同事 说已经发现 并且给了一个 网址 这里转帖记录一下 避免以后找不到. .NET Core是一个开源通用的开发框架,具有跨平台 ...

  4. angular生命周期

    概述 angular的组件及指令都有相应的声明周期: 创建, 更新, 销毁, 我们可以通过实现相应的生命周期钩子接口来进入相应的该声明周期的关键时刻 组件生命周期顺序 ngOnChanges: 当组件 ...

  5. spring学习总结(一)_Ioc基础(下)

    本篇文章继续上篇文章讲解Ioc基础,这篇文章主要介绍零配置实现ioc,现在相信大家项目中也基本都是没有了xml配置文件.废话不多说.一起学习 代码示例 BookDao.java package com ...

  6. jvm学习三:自定义ClassLoader

    第一节我们说过一句话:所有的Java虚拟机实现必须在每个类或接口被Java程序“ 首次主动使用”时才初始化他们 但类加载器却不是这样:类加载器不需要等到某个类“被首次主动使用”时才加载类 两句话的区别 ...

  7. MyBatis:传参

    MyBatis从入门到放弃二:传参 前言 我们在mapper.xml写sql,如果都是一个参数,则直接配置parameterType,那实际业务开发过程中多个参数如何处理呢? 从MyBatis API ...

  8. BZOJ3110[Zjoi2013]K大数查询——权值线段树套线段树

    题目描述 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是 ...

  9. BZOJ3729Gty的游戏——阶梯博弈+巴什博弈+非旋转treap(平衡树动态维护dfs序)

    题目描述 某一天gty在与他的妹子玩游戏.妹子提出一个游戏,给定一棵有根树,每个节点有一些石子,每次可以将不多于L的石子移动到父节点,询问将某个节点的子树中的石子移动到这个节点先手是否有必胜策略.gt ...

  10. BZOJ3282Tree——LCT

    题目描述 给定N个点以及每个点的权值,要你处理接下来的M个操作. 操作有4种.操作从0到3编号.点从1到N编号. 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和. 保证x到y ...