??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美天堂影院,欧美午夜精品一区二区蜜桃,欧美一区二区三区婷婷http://www.aygfsteel.com/hwpok/category/47415.htmlDEBUG - 天道酬勤zh-cnFri, 25 Nov 2011 13:16:02 GMTFri, 25 Nov 2011 13:16:02 GMT60ant?Only antlib URIs can be located from the URI alone,not the URI"错误 http://www.aygfsteel.com/hwpok/archive/2011/11/22/364591.html惠万?/dc:creator>惠万?/author>Tue, 22 Nov 2011 13:11:00 GMThttp://www.aygfsteel.com/hwpok/archive/2011/11/22/364591.htmlhttp://www.aygfsteel.com/hwpok/comments/364591.htmlhttp://www.aygfsteel.com/hwpok/archive/2011/11/22/364591.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/364591.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/364591.html原因?lt;taskdef ...>~少name="obfuscate"

]]>
ANT 打jar?/title><link>http://www.aygfsteel.com/hwpok/archive/2010/12/20/341145.html</link><dc:creator>惠万?/dc:creator><author>惠万?/author><pubDate>Mon, 20 Dec 2010 03:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/hwpok/archive/2010/12/20/341145.html</guid><wfw:comment>http://www.aygfsteel.com/hwpok/comments/341145.html</wfw:comment><comments>http://www.aygfsteel.com/hwpok/archive/2010/12/20/341145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hwpok/comments/commentRss/341145.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hwpok/services/trackbacks/341145.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff"><?</span><span style="color: #ff00ff">xml version="1.0"</span><span style="color: #0000ff">?></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff"><</span><span style="color: #800000">project </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="javaTest"</span><span style="color: #ff0000"> default</span><span style="color: #0000ff">="jar"</span><span style="color: #ff0000"> basedir</span><span style="color: #0000ff">="."</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">target </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="clean"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />       </span><span style="color: #0000ff"><</span><span style="color: #800000">delete </span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="build"</span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"></</span><span style="color: #800000">target</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">path </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="classpath"</span><span style="color: #0000ff">></span><span style="color: #000000">  <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">fileset  </span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="lib"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />          </span><span style="color: #0000ff"><</span><span style="color: #800000">include </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="*.jar"</span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"></</span><span style="color: #800000">fileset</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"></</span><span style="color: #800000">path</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">target </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="compile"</span><span style="color: #ff0000"> depends</span><span style="color: #0000ff">="clean"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />       </span><span style="color: #0000ff"><</span><span style="color: #800000">mkdir </span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />      </span><span style="color: #0000ff"><</span><span style="color: #800000">javac </span><span style="color: #ff0000">srcdir</span><span style="color: #0000ff">="src"</span><span style="color: #ff0000"> destdir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #ff0000"> encoding</span><span style="color: #0000ff">="UTF-8"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />          </span><span style="color: #0000ff"><</span><span style="color: #800000">classpath </span><span style="color: #ff0000">refid</span><span style="color: #0000ff">="classpath"</span><span style="color: #0000ff">/></span><span style="color: #000000">   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />      </span><span style="color: #0000ff"></</span><span style="color: #800000">javac</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"></</span><span style="color: #800000">target</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">target </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="run"</span><span style="color: #ff0000"> depends</span><span style="color: #0000ff">="compile"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />       </span><span style="color: #0000ff"><</span><span style="color: #800000">java </span><span style="color: #ff0000">classname</span><span style="color: #0000ff">="Main"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />           </span><span style="color: #0000ff"><</span><span style="color: #800000">classpath</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />              </span><span style="color: #008000"><!--</span><span style="color: #008000"><classpath refid="classpath"/></span><span style="color: #008000">--></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />              </span><span style="color: #0000ff"><</span><span style="color: #800000">pathelement </span><span style="color: #ff0000">path</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />           </span><span style="color: #0000ff"></</span><span style="color: #800000">classpath</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />       </span><span style="color: #0000ff"></</span><span style="color: #800000">java</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"></</span><span style="color: #800000">target</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">target </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="copyConfig"</span><span style="color: #ff0000"> depends</span><span style="color: #0000ff">="run"</span><span style="color: #0000ff">></span><span style="color: #000000">   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">copy </span><span style="color: #ff0000">todir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">></span><span style="color: #000000">   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                </span><span style="color: #0000ff"><</span><span style="color: #800000">fileset </span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="src"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                     </span><span style="color: #0000ff"><</span><span style="color: #800000">include </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="*.png"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                </span><span style="color: #0000ff"></</span><span style="color: #800000">fileset</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"></</span><span style="color: #800000">copy</span><span style="color: #0000ff">></span><span style="color: #000000">          <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"></</span><span style="color: #800000">target</span><span style="color: #0000ff">></span><span style="color: #000000">    <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">target </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jar"</span><span style="color: #ff0000"> depends</span><span style="color: #0000ff">="copyConfig"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">pathconvert </span><span style="color: #ff0000">property</span><span style="color: #0000ff">="mf.classpath"</span><span style="color: #ff0000"> pathsep</span><span style="color: #0000ff">=" "</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />             </span><span style="color: #0000ff"><</span><span style="color: #800000">mapper</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                 </span><span style="color: #0000ff"><</span><span style="color: #800000">chainedmapper</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                     </span><span style="color: #0000ff"><</span><span style="color: #800000">flattenmapper </span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                     </span><span style="color: #0000ff"><</span><span style="color: #800000">globmapper </span><span style="color: #ff0000">from</span><span style="color: #0000ff">="*"</span><span style="color: #ff0000"> to</span><span style="color: #0000ff">="lib/*"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                 </span><span style="color: #0000ff"></</span><span style="color: #800000">chainedmapper</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />             </span><span style="color: #0000ff"></</span><span style="color: #800000">mapper</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />             </span><span style="color: #0000ff"><</span><span style="color: #800000">path </span><span style="color: #ff0000">refid</span><span style="color: #0000ff">="classpath"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />         </span><span style="color: #0000ff"></</span><span style="color: #800000">pathconvert</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">jar </span><span style="color: #ff0000">destfile</span><span style="color: #0000ff">="main.jar"</span><span style="color: #ff0000"> basedir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />               </span><span style="color: #0000ff"><</span><span style="color: #800000">manifest</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                  </span><span style="color: #0000ff"><</span><span style="color: #800000">attribute </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="Main-class"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="Main"</span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                      </span><span style="color: #0000ff"><</span><span style="color: #800000">attribute </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="Class-Path"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${mf.classpath} "</span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />               </span><span style="color: #0000ff"></</span><span style="color: #800000">manifest</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />     </span><span style="color: #0000ff"></</span><span style="color: #800000">jar</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"></</span><span style="color: #800000">target</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff"></</span><span style="color: #800000">project</span><span style="color: #0000ff">></span></div> <img src ="http://www.aygfsteel.com/hwpok/aggbug/341145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hwpok/" target="_blank">惠万?/a> 2010-12-20 11:41 <a href="http://www.aygfsteel.com/hwpok/archive/2010/12/20/341145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ANT hellohttp://www.aygfsteel.com/hwpok/archive/2010/12/19/341117.html惠万?/dc:creator>惠万?/author>Sun, 19 Dec 2010 13:37:00 GMThttp://www.aygfsteel.com/hwpok/archive/2010/12/19/341117.htmlhttp://www.aygfsteel.com/hwpok/comments/341117.htmlhttp://www.aygfsteel.com/hwpok/archive/2010/12/19/341117.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/341117.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/341117.html是一?/span>Apache基金?x)下的跨q_的构件工P它可以实现项目的自动构徏和部|等功能。在本文中,主要让读者熟(zhn)怎样?/span>Ant应用?/span>Java目中,让它化构建和部v操作?/span>

一Q?span style="font: 7pt &apos">             安装与配|?/span>

下蝲地址Q?/span>Q,卛_使用?/span>

dpȝ环境变量Q?/span>ANT_HOMEQ该变量指向Ant解压后的根目录,在此?/span>E:"apache-ant-1.7.0?/span>

安装与配|完毕后Q读者可以测试一?/span>Ant是否可用Q首先进?/span>Ant?/span>bin目录Q运行命?/span>ant –versionQ若安装和配|成功,则会(x)昄Ant版本信息Q如下图所C:(x)
   

׃可以看出Q读者运?/span>Ant的命令时Q需要进入到Ant?/span>bin目录Q如何才能让pȝ自动扑ֈAnt呢?q时需要读者在pȝ环境变量path中添?/span>Ant?/span>bin目录。设|完成后Q我们就可以在Q何目录(例如C:"Documents and Settings"AmigoXie目录Q输?/span>Ant的命令,来获得命令的q行l果?/span>

二.             Ant的关键元?/span>

Ant的构件文件是ZXML~写的,默认名称?/span>build.xml。ؓ(f)?jin)更清楚的?jin)?/span>AntQ在q里~写一个简单的AntE序Q用来展?/span>Ant的功能,让读者对Ant有一个初步的?jin)解。首先在E盘(sh)建立一?/span>build.xml文gQ内容如下:(x)
读者可以进?/span>E盘,然后q行ant sayHelloWorldQ可以看到如下的q行l果Q?br />     

<?xml version="1.0"?>
<project name="helloWorld">
       
<target name="sayHelloWorld">
              
<echo message="Hello,Amigo"/>
       
</target>
</project>

 

其中sayHelloWorld为需要执行的d的名U。如果文件名不ؓ(f)build.xmlQ而ؓ(f)hello.xmlӞ读者运行同L(fng)命o(h)Ӟ命o(h)H口?x)出现如下错误?x)

Buildfile: build.xml does not exist!

Build failed

׃面的命o(h)的错误提C可以看出,ant命o(h)默认Lbuild.xml文g。若文g名ؓ(f)hello.xmlӞ读者还需要对命o(h)做少许改变,改ؓ(f)Q?/span>ant –f hello.xml sayHelloWorld?/span>ant –buildfile hello.xml sayHelloWorld?/span>ant –file hello.xml sayHelloWorld?/span>

接下来开始向读者讲解本节的重点Q?/span>Ant的关键元?/span>project?/span>target?/span>property?/span>task?/span>

1.       project元素

project元素?/span>Ant构g文g的根元素Q?/span>Ant构g文g臛_应该包含一?/span>project元素Q否则会(x)发生错误。在每个project元素下,可包含多?/span>target元素。接下来向读者展CZ?/span>project元素的各属性?/span>

1Q?/strong>name属?/span>

用于指定project元素的名U?/span>

2Q?/strong>default属?/span>

用于指定project默认执行时所执行?/span>target的名U?/span>

3Q?/strong>basedir属?/span>

用于指定\径的位置。该属性没有指定时Q?/span>Ant的构件文件的附目录作为基准目录?/span>

下面l读者一个简单的例子来展C?/span>project的各元素的用。修?/span>E:"build.xml文gQ修改后的内容如下:(x)

<?xml version="1.0"?>
<project name="projectStudy" default="sayBaseDir" basedir="E:"apache-ant-1.7.0">
       
<target name="sayBaseDir">
              
<echo message="The base dir is: ${basedir}"/>
       
</target>
</project>

从上面的内容我们可以看出Q在q里定义?/span>default属性的gؓ(f)sayBaseDirQ即当运?/span>ant命o(h)Ӟ若未指明执行?/span>targetӞ默认执行?/span>target?/span>sayBaseDirQ同时还定义?/span>basedir属性的gؓ(f)E:"apache-ant-1.7.0Q进?/span>E盘后q行ant命o(h)Q可看到q行的结果,如下图所C:(x)
   

因ؓ(f)讑֮?/span>basedir的|所?/span>basedir属性的值变成了(jin)读者设|的倹{读者可以自行将project元素?/span>basedir属性去掉后q行ant看看q行l果Q此?/span>basedir的值变成了(jin)E:"Q即?/span>Ant构g文g的父目录?/span>

有的时候,读者可能有q种需求,x得到某个project下所有的target的名Uͼ读者可以通过?/span>ant命o(h)里加?/span>-proecthelp来达到该目的。例如针对上q的例子我们q行ant –projecthelpQ输出结果如下:(x)

Buildfile: build.xml

Main targets:

Other targets:

 sayBaseDir

Default target: sayBaseDir

2.       target元素

它ؓ(f)Ant的基本执行单元,它可以包含一个或多个具体的Q务。多?/span>target可以存在怺依赖关系。它有如下属性:(x)

1Q?/strong>name属?/span>

指定target元素的名Uͼq个属性在一?/span>project元素中是唯一的。我们可以通过指定target元素的名U来指定某个target?/span>

2Q?/strong>depends属?/span>

用于描述target之间的依赖关p,若与多个target存在依赖关系Ӟ需要以“,”间隔?/span>Ant?x)依?/span>depends属性中target出现的顺序依ơ执行每?/span>target。被依赖?/span>target?x)先执行?/span>

3Q?/strong>if属?/span>

用于验证指定的属性是否存在,若不存在Q所?/span>target不?x)被执行?/span>

4Q?/strong>unless属?/span>

该属性的功能?/span>if属性的功能正好相反Q它也用于验证指定的属性是否存在,若不存在Q所?/span>target会(x)被执行?/span>

5Q?/strong>description属?/span>

该属性是关于target功能的简短描q和说明?/span>

下面带领读者来看一个各属性综合用的例子。修?/span>E:"build.xml文gQ修改后的内容如下:(x)
q入E盘后q行ant targetBQ可看到如下图所C的q行l果Q?br />    

<?xml version="1.0"?>
<project name="targetStudy">
       
<target name="targetA" if="ant.java.version">
              
<echo message="Java Version: ${ant.java.version}"/>
       
</target>
       
<target name="targetB" depends="targetA" unless="amigo">
              
<description>
                            a depend example!
              
</description>
              
<echo message="The base dir is: ${basedir}"/>
       
</target>
</project>

 

读者分析结果后可以看到Q我们运行的是名?/span>targetB?/span>targetQ因?/span>target依赖?/span>targetAQ所?/span>targetA首先被执行Q同时因为系l安装了(jin)java环境Q所?/span>ant.java.version属性存在,执行?/span>targetAq个targetQ输Z息:(x)[echo] Java Version: 1.5Q?/span>targetA执行完毕后,接着执行targetBQ因?/span>amigo不存在,?/span>unless属性是在不存在时进入所在的target的,由此可知targetB得以执行Q输Z息:(x)The base dir is: E:"?/span>

3.       property元素

该元素可看作参量或者参数的定义Q?/span>project的属性可以通过property元素来设定,也可?/span>Ant之外讑֮。若要在外部引入某文Ӟ例如build.properties文gQ可以通过如下内容其引入Q?/span><property file=” build.properties”/>

property元素可用?/span>task的属性倹{在task中是通过属性名攑֜“${”?#8220;}”之间Qƈ攑֜task属性值的位置来实现的?/span>

Ant提供?jin)一些内|的属性,它能得到的系l属性的列表?/span>Java文档?/span>System.getPropertis()Ҏ(gu)得到的属性一_(d)q些pȝ属性可参?/span>sun|站的说明?/span>

同时Q?/span>Antq提供了(jin)一些它自己的内|属性,如下Q?/span>

basedirQ?/span>project基目录的l对路径Q该属性在讲解project元素时有详细说明Q不再赘qͼ

ant.fileQ?/span>buildfile的绝对\径,如上面的各例子中Q?/span>ant.file的gؓ(f)E:"build.xmlQ?/span>

ant.versionQ?/span>Ant的版本,在本文中Qgؓ(f)1.7.0Q?/span>

ant.project.nameQ当前指定的project的名字,卛_文说到的project?/span>name属性的|

ant.java.versionQ?/span>Ant(g)到?/span>JDK的版本,在上例运行结果中可看Cؓ(f)1.5?/span>

下面让读者来看一?/span>property元素使用的简单例子。修?/span>E:"build.xml文gQ内容如下:(x)

<?xml version="1.0"?>
<project name="propertyStudy" default="example">
<property name="name" value="amigo"/>
<property name="age" value="25"/>
<target name="example">
        
<echo message="name: ${name}, age: ${age}"/>
</target>
</project>

该例的运行结果如下图所C:(x)
   

由此读者可以看出,通过如下两个语句Q?/span>

<property name="name" value="amigo"/>

<property name="age" value="25"/>

我们讄?jin)名?/span>name?/span>age的两个属性,q两个属性设|后Q读者在下文中可以通过${name}?/span>${age}分别取得q两个属性的倹{?/span>

三.             Ant的常用Q?/span>

?/span>Ant工具中每一个Q务封装了(jin)具体要执行的功能Q是Ant工具的基本执行单位。在本小节中Q主要引D者来看下Ant的常用Q务及(qing)其用D例?/span>

1.       copyd

该Q务主要用来对文g和目录的复制功能。D例如下:(x)

Eg1.复制单个文gQ?/span><copy file="file.txt" tofile="copy.txt"/>

Eg2.Ҏ(gu)件目录进行复Ӟ(x)

   <copy todir="../newdir/dest_dir">

            <fileset dir="src_dir"/>

 </copy>

Eg3. 文件复制到另外的目录:(x)

 <copy file="file.txt" todir="../other/dir"/>

2.       deleted

Ҏ(gu)件或目录q行删除QD例如下:(x)

Eg1. 删除某个文gQ?/span><delete file="photo/amigo.jpg"/>

Eg2. 删除某个目录Q?/span><delete dir="photo"/>

Eg3. 删除所有的备䆾目录或空目录Q?/span>

        <delete includeEmptyDirs="true">

               <fileset dir="." includes="**/*.bak"/>

        </delete>

3.       mkdird

创徏目录?/span>egQ?/span><mkdir dir="build"/>

4.       moved

Ud文g或目录,举例如下Q?/span>

Eg1. Ud单个文gQ?/span><move file="fromfile" tofile=”tofile”/>

Eg2. Ud单个文g到另一个目录:(x)<move file="fromfile" todir=”movedir”/>

Eg3. Ud某个目录到另一个目录:(x)

        <move todir="newdir">

               <fileset dir="olddir"/>

        </move>

5.       echod

该Q务的作用是根据日志或监控器的U别输出信息。它包括message?/span>file?/span>append?/span>level四个属性,举例如下Q?/span>

<echo message="Hello,Amigo" file="logs/system.log" append="true">

四.             利用Ant构徏和部|?/span>Java工程

Ant可以代替使用javac?/span>java?/span>jar{命令来执行java操作Q从而达到轻杄构徏和部|?/span>Java工程的目的。下面来看几个知识点?/span>

1.       利用Ant?/span>javacd来编?/span>javaE序

Ant?/span>javacd用于实现~译JavaE序的功能。下面来看一个简单的例子Q?/span>

首先我们建立名ؓ(f)antstudy?/span>Java工程Q徏?/span>src目录为源代码目录Q在src目录下徏?/span>HelloWorld.javaq个cL件。该cL件的内容如下Q?/span>

public class HelloWorld {
    
public static void main(String[] args) {
       System.out.println(
"Hello,Amigo");
    }

}

   同时?/span>antstudy工程的根目录下徏?/span>build.xml文gQ在该文件中~译src目录下的java文gQƈ编译后?/span>class文g攑օbuild/classes目录中,在编译前Q需清除classes目录Q该文g的内容如下:(x)
    q行?/span>build.xml文gQ可在工E中看到新增?/span>build/classes目录Qƈ在该目录中生成了(jin)~译后的HelloWorld.class文g?/span>

<?xml version="1.0"?>
<project name="javacTest"default="compile" basedir=".">
    
<target name="clean">
       
<delete dir="build"/>
    
</target>

    
<target name="compile" depends="clean">
       
<mkdir dir="build/classes"/>
    
<javac srcdir="src" destdir="build/classes"/>
    
</target>
</project>

 

2.       使用Ant?/span>javadq行JavaE序

Ant中可以?/span>javad实现q行JavaE序的功能。下面在1的例子中q行如下的修改,修改后的build.xml文g的内容如下:(x)
    q行?/span>build.xml文gQ可在控制台看到HelloWorld?/span>mainҎ(gu)的输出?/span>

<?xml version="1.0"?>
<project name="javaTest" default="jar" basedir=".">
    
<target name="clean">
       
<delete dir="build"/>
    
</target>

    
<target name="compile" depends="clean">
       
<mkdir dir="build/classes"/>
      
<javac srcdir="src" destdir="build/classes"/>
    
</target>

    
<target name="run" depends="compile">
       
<java classname="HelloWorld">
           
<classpath>
              
<pathelement path="build/classes"/>
           
</classpath>
       
</java>
    
</target>
</project>

 

3.       使用Ant?/span>jard生成jar文g

读者可以在上例的基上更q一步,来生?/span>jar包,可在runq个target下再加上如下targetQ?br /> 此时?/span>ant?/span>project?/span>default属性设|ؓ(f)jarQ同时运行该build.xml文gQ运行完毕后Q可看到在工E目录下生成?jin)一?/span>jar?/span>HelloWorld.jar?/span>

<target name="jar" depends="run">
<jar destfile="helloworld.jar" basedir="build/classes">
           
<manifest>
              
<attribute name="Main-class" value="HelloWorld"/>
           
</manifest>
       
</jar>
</target>

 

4.       使用Ant?/span>ward打包J2EE Web

建立一?/span>J2EE Web工程Q其目录l构如下图所C:(x)

其中src为源代码目录Q?/span>WebRoot为各jsp存放目录Q?/span>lib为工E的包目录。在antwebproject工程目录下徏立了(jin)build.xml文gQ该文g工程?/span>Ant构g文g。读者可?/span>src目录下放入在前箋例子中开发的HelloWorld.java文gQƈ?/span>WebRoot下徏?/span>index.jsp文gQ其内容很简单,是输出Hello信息Q代码如下所C:(x)   接下来编?/span>build.xml文gQ其内容如下Q?/span>    ?/span>target的作用在内容中已l进行说明,在此不再赘述。运行该build文gQ更新目录后Q可看到?/span>build目录下生成了(jin)antwebproject.war文gQ解开后可看到其目录结构如下:(x)



]]>
ANT 配置Ҏ(gu)http://www.aygfsteel.com/hwpok/archive/2010/12/19/341110.html惠万?/dc:creator>惠万?/author>Sun, 19 Dec 2010 09:49:00 GMThttp://www.aygfsteel.com/hwpok/archive/2010/12/19/341110.htmlhttp://www.aygfsteel.com/hwpok/comments/341110.htmlhttp://www.aygfsteel.com/hwpok/archive/2010/12/19/341110.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/341110.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/341110.html 1。解压ant的包到本地目录?nbsp;
2。在环境变量中设|ANT_HOMEQgؓ(f)你的安装目录?nbsp;
3。在环境变量中设|JAVA_HOMEQgؓ(f)你的jdk安装目录?nbsp;
4。把ANT_HOME/bin加到你系l的path目录中去?nbsp;

SET ANT_HOME=D:\jakarta-ant-1.5.1 //注意是Ant的安装目录,不是bin子目?
SET PATH=%PATH%;%ANT_HOME%\bin;



]]>
վ֩ģ壺 | ɽ| | | | | ػʵ| Ͷ| ƽɽ| | | | | ̨| ά| | | | | | | | | | ī| ˮ| ̩| ̨| Թ| | | | | ϼ| | | ߰| ǰ| | | ɽ|