1
我正在使用ant構建腳本創建一個jar包。問題是.class文件不包含在生成的.jar文件中。我也在製作jar時嘗試了{build.dest},但沒有任何效果。編譯的類不包含在生成的jar中
剩下的所有文件我需要在.jar文件中。
這裏是我的構建腳本
<?xml version="1.0"?>
<project name="TaskNodeBundle" default="all" basedir=".">
<!-- Sets variables which can later be used. -->
<!-- The value of a property is accessed via ${} -->
<property name="bundlename" value="task-node-bundle" />
<property name="src.dir" location="../src" />
<property name="lib.dir" location="../lib" />
<property name="build.dir" location="/buildoutput" />
<property name="build.dest" location="../build/dest" />
<!--
Create a classpath container which can be later used in the ant task
-->
<path id="classpath">
<fileset dir="${lib.dir}/">
<include name="*.jar" />
</fileset>
</path>
<target name="clean">
<delete dir="${build.dir}" />
<delete dir="${build.dest}" />
</target>
<!-- Deletes the existing build directory -->
<target name="mkdir" depends="clean">
<mkdir dir="${build.dest}"/>
</target>
<!-- Compiles the java code -->
<target name="compile" depends="mkdir">
<javac srcdir="${src.dir}" destdir="${build.dest}" classpathref="classpath" />
</target>
<target name="package-bundle" depends="compile" description="Generates the bundle" >
<jar destfile="${build.dest}/${bundlename}.jar" manifest="${src.dir}/META-INF/MANIFEST.MF">
<fileset dir="${src.dir}">
<include name="**/**.class" />
<include name="**/**.properties"/>
<include name="/META-INF/**.*" />
<include name="/META-INF/spring/**.*" />
</fileset>
</jar>
</target>
<target name="all" depends="package-bundle">
</target>
</project>
謝謝coolcfan – vicky
嘿,我看到您的編輯。當然,您可以使用$ {build.dest}來存儲jar文件;然而,作爲一種常見的做法,我建議將編譯後的類文件和生成的jar文件放在不同的目錄中。例如,Netbeans項目的類文件位於'project/build/classes'中,而生成的jar文件位於'project/dist'中。 – coolcfan
偉大的提示,我會記住,然後沒有必要編輯。謝謝。我真的很感激它 – vicky