0
我想用Jenkins使用Ant腳本來製作我的項目的jar文件,但是我的腳本只從「src」文件夾編譯擴展名爲.jar的文件,我想編譯所有這些文件到我的jar中,該怎麼做?Ant jar命令只編譯擴展名爲.jar的文件
文件夾結構,在詹金斯服務器:
+ /src
+ /net
+ /xxx [there a lot of java classes]
+ plugin.yml
+ /resources
+ /structs
+ /lib [There is my java lib folder]
+ /build
+ build.xml
Ant腳本:
<project name="BCCore" basedir="." default="main">
<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="main-class" value="net.xxx.core.BCCore"/>
<property name="lib.dir" value="lib"/>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false" classpathref="classpath"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java fork="true" classname="${main-class}">
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/${ant.project.name}.jar"/>
</classpath>
</java>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean-build,run"/>
當我建立我的整個使用項目的NetBeans我與重量〜4.0 MB JAR文件,但Jenkins服務器上用Ant構建的文件重量大約爲〜1.6 MB,當我從Jenkins(由JdGui)在文件夾查看builded文件時,文件夾中只有包「net.xxx.core ...」
此無關與詹金斯。你從命令行嘗試螞蟻嗎? – Jayan
我剛剛在Jenkins中添加了Build Action「Invoke Ant」(沒有參數)(當我從命令行運行腳本時,結果與Jenkins一樣),並且執行了默認的「main」目標,所以我認爲是好的,因爲Jar正在構建,但是擔心構建Jar的時間減少一半,並且該Jar內部只有** **擴展名爲.java **的文件,並且應該有其他文件,如「plugin.yml,/ resources ......「我可能錯過了我認爲的腳本 – TheTonsOfCode