Ant文档翻译(连载)

论坛 期权论坛     
选择匿名的用户   2021-5-30 01:46   128   0
<p><span style="font-size:small;color:#ff0000;"><strong>很想把Ant好好的学习一下,最好的学习方法就是看官方文档,所以决定把原版英文文档翻译一下,如果有翻译不对的地方,请大家指出来,谢谢</strong></span></p>
<p><strong><span style="font-size:small;color:#ff0000;">英文部份为还没有翻译的部份</span></strong></p>
<p><strong><span style="color:#ff0000;"><span style="font-size:small;">文档原始地址:</span><a href="http://ant.apache.org/manual/index.html"><span style="font-size:small;">http://ant.apache.org/manual/index.html</span></a></span></strong></p>
<p><strong><span style="color:#ff0000;">参考资料:孙鑫老师的JAVA WEB开发详解</span></strong> </p>
<h1>Using Ant</h1>
<h1><a name="buildfile">简单的构建文件:</a></h1>
<p><strong><span style="font-size:medium;color:#ff0000;">ant的构建文件是xml格式的,每一个构建文件包含一个project和至少一个(缺省)target,目标包含任务(task)元素,构建文件里的每一个任务元素(task)可以指定一个id元素,可以用它的值来引用这个task,这个值是唯一的,</span></strong></p>
<p>(更多说明,请看下面的 <a href="https://blog.csdn.net/coolservices/article/details/83237847#tasks">Tasks</a>)</p>
<h3><a name="projects">Projects</a>(工程)</h3>
<p>Project 有三个属性</p>
<p> </p>
<table border="1" cellpadding="2" cellspacing="0"><tbody><tr><td><strong>属性</strong></td><td><strong>描述</strong></td><td align="center"><strong>必须</strong></td></tr><tr><td>name</td><td>工程名</td><td align="center">No</td></tr><tr><td>default</td><td>没有指定target时缺省使用的target名字</td><td align="center">No; 然而在<strong>Ant 1.6.0后,</strong>每个工程包含一个即使使用 <a href="https://blog.csdn.net/coolservices/article/details/running.html#options">-projecthelp</a> 选项也要执行的任务. </td></tr><tr><td>basedir</td><td> <p>要路径,这个属性可以被先前设置的“basedir&#34;这个属性覆盖,计算其它路径的其路径。如果没有设置这个属性或特性(Property),将使用构建文件(build.xml)的父目录作为基目录。</p> </td><td align="center">No</td></tr></tbody></table>
<p></p>
<p>对一个工程的描述(description)可以用顶级的元素&lt;description&gt;(请看<a href="https://blog.csdn.net/coolservices/article/details/CoreTypes/description.html">description</a> 元素)</p>
<p>每个工程都定义了一个或多个目标(target),目标就是一系列你要执行的任务,当执行ant的时候,你可以选择执行你想要执行的目标,当没有指定目标时,使用&lt;project&gt;元素中default指定的目标。</p>
<h3><a name="targets">Targets</a></h3>
<p>一个目标可以依赖其它的目标,例如,你可以有一个编译的目标,一个发布的目标,只有编译之后才可以发布,所以以布目标要依赖于编译,Ant解决这种依赖关系。</p>
<p>应该说明的是,Ant的这种依赖只是指定的目标的执行顺序,这并不影响执行那些没有必要执行的依赖目标。</p>
<p>Ant执行目标的顺序是按照它们从左到右的出现顺序,一个目标比它依赖的目标更早执行是有可能的。</p>
<pre class="blockcode">&lt;target name&#61;&#34;A&#34;/&gt;
&lt;target name&#61;&#34;B&#34; depends&#61;&#34;A&#34;/&gt;
&lt;target name&#61;&#34;C&#34; depends&#61;&#34;B&#34;/&gt;
&lt;target name&#61;&#34;D&#34; depends&#61;&#34;C,B,A&#34;/&gt;</pre>
<p>我们要执行目标D.从依赖属性(depends)看,你可能认为应该先执行目标C,然后是B,最后是A,错了!C依赖B,B依赖A,因此,先执行A,再是B,接着是C,最后是D</p>
<p>上面从给定目标D延伸到依赖的A目标的这个依赖链中,每一个目标只执行一次,即使多个目标依赖一个目标,因此,执行目标D首先会调用C执行,C又会调用B执行,B将会导致A第一次被执行,然后执行B,接着是C,一直执行到依赖链中的D,这个过程中,不会再执行B和A,因为他们已经执行过了,如果B和C没有依赖关系,那么,B和A将在C处理D的依赖时就被执行。</p>
<p>可以设置某个特性(Property)执行目标,例如,这可以依赖系统环境(java 版本,操作系统,命令行特性定义,等)更好的控制构造过程,由特性来添加目标,你应该添加属性if(或者 unless属性),属性值为你要作用于此目标上的特性。注意:Ant仅检查这个特性是否被设置,这个特性的值并不重要,一个空字符串的特性仍然是一个存在的特性。比如:</p>
<p> </p>
<blockquote>
<blockquote>
  <pre class="blockcode">&lt;target name&#61;&#34;build-module-A&#34; if&#61;&#34;module-A-present&#34;/&gt;</pre>
  <pre class="blockcode">&lt;target name&#61;&#34;build-own-fake-m
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP