ant打可執行jar包,報錯找不到第三方jar的類;

<?xml version="1.0" encoding="UTF-8"?>


<project name="sayhellousejarant" default="jar" basedir=".">

    <!--定義源文件路徑,其中的value換成location也行,使用value的時候,${src}得到的就是src這個值,如果使用location,得到的是src這個目錄的絕對路徑-->

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

    <property name="classes" value="target/classes" />
    <property name="target"         value="1.8"/>
    <property name="source"         value="1.8"/>
    <property name="debuglevel"     value="source,lines,vars"/>
    
    <property name="lib.dir"     value="../lib"/>
    <property name="dir.src"        value="${basedir}/src/main/java"/>
    <property name="dir.res"        value="${basedir}/src/main/resources"/>
    <!--構造打包時Class-Path需要的路徑 -->


    <!--創建編譯任務,名字是compile,depends指定了comiple任務依賴init任務-->

    <target name="compile" description="comile target">

        <mkdir dir="${classes}" />
        <javac srcdir="${src}" destdir="${classes}" includeantruntime="true" source="${source}" target="${target}" encoding="UTF-8" debug="true" debuglevel="${debuglevel}">

            <!-- classpath 定義編譯需要的claspath -->
            <src path="src/main/java"/>
            <src path="src/main/resources"/>
            <classpath>
                <fileset dir="../lib">
                    <include name="**.jar" />
                </fileset>
            </classpath>

        </javac>
        <copy includeemptydirs="false" todir="${classes}" preservelastmodified="true">
            <fileset dir="${dir.src}" excludes="**/**.java"/>
            <fileset dir="${dir.res}" excludes="**/**.java"/>
        </copy>
    </target>

    <!-- 創建時間戳 -->

    <tstamp />

    <!--定義jarfilename,準備進行打包操作。其中ant.project.name是ant默認的一個變量,值爲最上面定義的project的name

    ${DSTAMP}爲日期,格式爲20111123;${TSTAMP}爲時間,格式爲2256,表示22點56分。-->

    <property name="jarfilename" value="util.jar" />

    <!--打包開始,名字爲jar,依賴任務爲compile-->

    <target name="jar" depends="compile" description="make jar file">
        <!--jar操作,jarfile指定jar包存放路徑,basedir爲編譯後的class的目錄-->
        <jar jarfile="${jarfilename}" basedir="${classes}">

            <!--爲jar包指定manifest,當然,如果jar包不需要打成runnable的形式,manifest可以不要
            <mappedresources>
                <fileset dir="../lib" />
                <globmapper from="*" to="lib/*"/>
            </mappedresources>
             <fileset dir="../lib"/>-->
             <zipfileset dir="../lib" includes="*.jar"/>
            <manifest>
                <!--指定main-class-->
                <!-- <attribute name="Main-Class" value="com.rquest.riskmaster.util.Utility" /> -->
                <attribute name="Main-Class" value="com.rquest.cn.AntTest" />
                 <attribute name="Class-Path" value="lib/**.jar"/>
            </manifest>

        </jar>

    </target>


    <!--運行一下jar包,試試看效果-->
    <target name="run" depends="jar">
        <!--其實這裏就是運行jar命令,注意fork一定加上,不然不起作用-->
        <java jar="${jarfilename}" fork="true">
        </java>
    </target>

</project>
 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章