Ant

首先来一个官方一点的解释java

apache ant:是一个将软件编译、测试、部署等步骤联系在一块儿加以自动化的一个工具,大多用于Java环境中的软件开发。web

           做用:1.能够用ant编译Java类,生成class文件apache

                     2.ant能够自定义标签和配置文件tomcat

                     3.ant能够把相关层架构成包架构

                     4.ant能够把整个项目生成web包,发布到tomcatapp

ant的使用方法less

1.下载(这个是否是多余说,下载个稳定版的哦)工具

2.配置环境变量:一共有三个须要配置测试

                      1.JAVA_HOME:指向JDK的安装路径(通常若是你安装了JDK都已经配置好了吧,没有配置的都是白痴么)优化

                      2.ANT_HOME :  指向ANT的安装路径 好比E:/ant

                      3.PATH : %ANT_HOME%/bin

3.最最关键的定义生成文件(其实以前两步完成就能够运行ANT了)

                      生成文件:我理解生成文件应该就是指把java生成class的文件,ant会按照生成文件里面定义的生成任务进行执行

                      怎么使用生成文件:ant的默认生成文件为build.xml(在命令行),要是想使用其余的xml文件做为生成文件,要将该文件的文件名做为参数传给ant(ant在命令行运                           行时,应该确保是在生成文件所在目录下输入ant,而后经过-buildfile或-file或-f来指定生成文件 例如  ant -f demo.xml)

                          生成文件定义了一个项目的各个生成任务(target标签来表示,每一个target标签都表示一个生成任务),并定义生成任务间的依赖关系

                      生成文件的位置:通常会把生成文件放在项目顶层目录中(他们说是为了保持整洁和清晰)

                      一个项目大概是这个结构  

                      project

                           |—src:存放源文件和各类配置文件的文件夹

                           |—classes:存放编译后的class文件的文件夹

                           |—lib:存放第三方jar包的地方(看这霸气的名字就知道了)

                           |—dist:存放项目打包,项目发布文件的文件夹

                           |—build.xml

4.生成文件中的标签(copy度娘,栗子是我本身买的=。=)

              

         a.<project>标签
           每一个构建文件对应一个项目。<project>标签时构建文件的根标签。它能够有多个内在属性,就如代码中所示,其各个属性的含义分别以下。
           (1) default表示默认的运行目标,这个属性是必须的。
           (2) basedir表示项目的基准目录。
           (3) name表示项目名。
           (4) description表示项目的描述。
           每一个构建文件都对应于一个项目,可是大型项目常常包含大量的子项目,每个子项目均可以有本身的构建文件。

 

         b.<target>标签(project的子标签)
            一个项目标签下能够有一个或多个target标签。一个target标签能够依赖其余的target标签。
            例如,有一个target用于编译程序,另外一个target用于声称可执行文件。在生成可执行文件以前必须先编译该文件,因策可执行文件的target依赖于编译程序的target。               Target的全部属性以下。
            (1).name表示标明,这个属性是必须的。
            (2).depends表示依赖的目标。
            (3)if表示仅当属性设置时才执行。
            (4)unless表示当属性没有设置时才执行。
            (5)description表示项目的描述。
            Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序依次执行每一个target。

            PS:我仍是举个栗子吧

                   1.<target name="demoOne" depends="demoTwo"/>

                   这个的意思就是执行demoOne target这个生成任务以前,必须先执行demoTwo target,另外depends里面能够有多个target,按出现顺序执行(这个就像是一                      个方法要想执行,必须再上一个方法已经执行的基础上同样,一环扣一环)

                   2.<target name="demoOne" unless="demeTwo" />

                   这个意思是想要执行demoOne的前提是demoTwo没有设置的时候才能够(就像是while,只有前提知足没有设置,才能够执行)。

                   3.<target name="demoOne" if="demoTwo"/>

                   这个意思是想要执行demoOne的前提是demoTwo已经设置的时候才能够(if,你懂得)。

 

          c.<mkdir>标签(target的子标签)
                  该标签用于建立一个目录,它有一个属性dir用来指定所建立的目录名,其代码以下:
                  <mkdir dir=”demo”/>也能够<mkdir dir ="demo/demochild">
                  经过以上代码就建立了一个目录.

 

         d.<jar>标签(target的子标签)
                 该标签用来生成一个JAR文件,其属性以下。
                 (1) destfile表示JAR文件名。
                 (2) basedir表示被归档的文件名。
                 (3) includes表示别归档的文件模式。
                 (4) exchudes表示被排除的文件模式。

                 PS:老板再来一个栗子

                 <jar destfile="dist/demo.jar" basedir="project/classes">

                 这个的意思是建立一个jar包名字为demo.jar,放在dist文件夹下面,被归档的文件为classes(就像是一份与之对应的文件)

 

         e.<javac标签>(target的子标签)
                该标签用于编译一个或一组java文件,其属性以下。
                (1).srcdir表示源程序的目录。
                (2).destdir表示class文件的输出目录。
                (3).include表示被编译的文件的模式。
                (4).excludes表示被排除的文件的模式。
                (5).classpath表示所使用的类路径。
                (6).debug表示包含的调试信息。
                (7).optimize表示是否使用优化。
                (8).verbose 表示提供详细的输出信息。
                (9).fileonerror表示当碰到错误就自动中止。

 

      f.<java>标签(target的子标签)
                 该标签用来执行编译生成的.class文件,其属性以下。
                (1).classname 表示将执行的类名。
                (2).jar表示包含该类的JAR文件名。
                (3).classpath所表示用到的类路径。
                (4).fork表示在一个新的虚拟机中运行该类。
                (5).failonerror表示当出现错误时自动中止。
                (6).output 表示输出文件。
                (7).append表示追加或者覆盖默认文件。

 

       g.<delete>标签(target的子标签)
                该标签用于删除一个文件或一组文件,其属性以下。
                (1)/file表示要删除的文件。
                (2).dir表示要删除的目录。
                (3).includeEmptyDirs 表示指定是否要删除空目录,默认值是删除。
                (4).failonerror 表示指定当碰到错误是否中止,默认值是自动中止。
                (5).verbose表示指定是否列出所删除的文件,默认值为不列出。

 

      h.<copy>标签(target的子标签)
               该标签用于文件或文件集的拷贝,其属性以下。
               (1).file 表示源文件。
               (2).tofile 表示目标文件。
               (3).todir 表示目标目录。
               (4).overwrite 表示指定是否覆盖目标文件,默认值是不覆盖。
               (5).includeEmptyDirs 表示制定是否拷贝空目录,默认值为拷贝。
               (6).failonerror 表示指定如目标没有发现是否自动中止,默认值是中止。
               (7).verbose 表示制定是否显示详细信息,默认值不显示。

      i.<property>标签(project的子标签)

              该标签用于定义一个或多个属性

              1.name:指定须要设置的属性名

              2.value:指定须要设置的属性值

              3.resource:指定属性文件袋的源名称,Ant将负责从文件中读取属性名和属性值

              4.file:指定属性文件的文件名,Ant将负责从文件中读取属性名和属性值

              5.url:指定属性文件的URL地址,Ant将负责从属性文件中读取属性名和属性值‘

              6.environment:用于指定系统环境变量的前缀,经过这种方式容许Ant访问环境变量

              7.classpathref:指定搜索属性文件的文件和路径集。

              8.classpathref:指定搜索文件的文件和路径集引用,只是引用。

              栗子来喽:

                <peoperty name="demo" value ="demoValue"/>

                 定义名字为demo的属性,其值为demoValue,若是须要获取属性值,则使用${demo}的形式。

5.Ant 的运行安装好Ant而且配置好路径以后,在命令行中切换到构建文件的目录(xml所在目录哦),输入Ant命令就能够运行Ant.若没有指定任何参数,Ant会在当前目录下查询build.xml文件。若是找到了就用该文件做为构建文件。若是使用了 –find 选项,Ant 就会在上级目录中找构建文件,直至到达文件系统的根目录。若是构建文件的名字不是build.xml ,则Ant运行的时候就可使用 –buildfile file,这里file 指定了要使用的构建文件的名称。

相关文章
相关标签/搜索