[英]Ant Script Example
我想做一個非常簡單的螞蟻腳本,該腳本可以完成一件事情,那就是構建一個jar文件。 但是,當我嘗試使用一個非常簡單的示例時,由於對我的來源所依賴的jar的依賴性,它失敗了。 因此,在構建Ant目標時,如何指定jar使其需要在類路徑中。
<project name="project" default="default">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="lib.dir" value="//tomcat/common/lib"/>
<description> description </description>
<!-- =================================
target: default
================================= -->
<target name="default" depends="compile" description="description">
<jar destfile="/path/to/dir/Library.jar">
</jar>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
</target>
</project>
您的問題尚不完全清楚-我懷疑您的意思是您想編譯源代碼(使用javac
任務), 然后根據結果構建一個jar文件。 如果不是這種情況,那么我看不到您的源依賴性在哪里出現。 如果是這樣的話,那么jar
的任務是無關緊要的。
在javac
任務中,使用classpath屬性指定其他jar依賴項。
這是使用Eclipse Runnable JAR導出向導生成的ANT腳本。 這是一個與一些朋友一起為小型夢幻棒球聯賽更新Google Spreadsheet上的統計信息的項目。 它通過抓取ESPN.com播放器頁面來獲取統計信息。
manifest
元素內的Class-Path屬性用於設置jar使用的類路徑。 默認為“。” 但是我必須顯式添加src路徑,以便log4j可以選擇log4j.properties。
zipfileset
元素是我的源中使用的外部jar,我想將其包含在jar中。 我懷疑這可能是您要尋找的。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project cob_fantasy_baseball">
<!--this file was created by Eclipse Runnable JAR Export Wizard-->
<!--ANT 1.7 is required -->
<target name="create_run_jar">
<jar destfile="C:/workspace/cob_fantasy_baseball/cob_fantasy_baseball.jar" filesetmanifest="mergewithoutmain">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-Class" value="com.me.cob_fantasy_baseball.UpdateCobStats"/>
<attribute name="Class-Path" value=".;src/com/me/cob_fantasy_baseball"/>
</manifest>
<fileset dir="C:/workspace/cob_fantasy_baseball/classes"/>
<zipfileset excludes="META-INF/*.SF" src="C:/workspace/gdata/java/lib/gdata-core-1.0.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/workspace/gdata/java/lib/gdata-spreadsheet-2.0.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/workspace/jericho-html-2.6/lib/jericho-html-2.6.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/workspace/apache-log4j-1.2.15/log4j-1.2.15.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/workspace/jaf-1.1.1/activation.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/workspace/javamail-1.4.2/mail.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/workspace/javamail-1.4.2/lib/smtp.jar"/>
<fileset dir="C:/workspace/cob_fantasy_baseball/src/com/me/cob_fantasy_baseball"/>
</jar>
</target>
</project>
另外,這是jar任務的Ant文檔鏈接: http : //ant.apache.org/manual/Tasks/jar.html
根據您的示例,您可以將庫放入javac中:
<javac srcdir="${src.dir}" destdir="${classes.dir}">
<classpath>
<pathelement location="${lib.dir}/lib1.jar"/>
<pathelement location="${lib.dir}/lib2.jar"/>
</classpath>
</javac>
這是我們用來構建Timeline開源項目的ant文件。 這很簡單。 它不會構建jar,但是會使用庫來最小化JS文件。
http://simile-widgets.googlecode.com/svn/timeline/trunk/build.xml
拉里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.