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