Ant

来源:互联网 发布:易语言编程教学 编辑:程序博客网 时间:2024/06/04 19:45

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

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

           作用:1.可以用ant编译Java类,生成class文件

                     2.ant可以自定义标签和配置文件

                     3.ant可以把相关层架构成包

                     4.ant可以把整个项目生成web包,发布到tomcat

ant的使用方法

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 指定了要使用的构建文件的名称。

0 0
原创粉丝点击