Ant:包含src文件夹的Jar文件

时间:2014-10-13 22:56:10

标签: java ant jar

我有一个很大的问题。我刚用ant创建了一个jar文件,一切正常,但是在jar文件中,src文件夹被省略了,但是我需要它,因为我正在从应用程序中引用一个文件。

即。我的项目ProjectName / src / org / nexLevel / nextLevel / Main.java中有以下结构。我还有ProjectName / config / settings.properties。

当我知道用ant构建一个jar文件时,我只得到文件夹org / nexLevel / nextLevel / Main.java而不是src文件夹。如何在我的.jar中获取src文件夹?

这是我的蚂蚁脚本:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="complete build" name="Create runnable jar file">
    <property name="src.dir" location="src" />
    <property name="lib.dir" location="lib" />
    <property name="build.dir" location="bin" />
    <property name="dist.dir" location="dist" />
    <property name="docs.dir" location="docs" />
    <property name="config.dir" location="config" />
    <property name="build.sysclasspath" value="last" />

    <path id="project-classpath">
        <fileset dir="${lib.dir}" includes="*.jar" />
    </path>

    <target name="remove release">
        <delete dir="${dist.dir}" />
    </target>

    <target name="clean build">
        <delete dir="${build.dir}" />
    </target>

    <target name="clean docs">
        <delete dir="${docs.dir}" />
    </target>

    <target name="compile" depends="clean build">
        <mkdir dir="${build.dir}" />
        <javac srcdir="${src.dir}" destdir="${build.dir}" debug="on" target="1.8" source="1.8">
            <classpath refid="project-classpath" />
            <compilerarg value="-Xlint:none" />
        </javac>
    </target>

    <target name="docs" depends="clean docs, compile">
        <mkdir dir="${docs.dir}" />
        <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}">
            <fileset dir="${src.dir}">
                <include name="**" />
            </fileset>
        </javadoc>
    </target>

    <target name="build jar" depends="remove release, compile">
        <mkdir dir="${dist.dir}" />
        <jar destfile="${dist.dir}/myApp.jar">
            <manifest>
                <attribute name="Main-Class" value="org.nextLevel.nextLevel.Main" />
                <attribute name="Class-Path" value="." />
            </manifest>

            <fileset dir="${build.dir}" />
            <zipfileset dir="config" prefix="config" />
            <zipfileset excludes="META-INF/**" src="lib/postgresql-9.3-1102.jdbc41.jar" />
        </jar>
        <antcall target="clean build" />
    </target>

    <target name="complete build" depends="docs, build jar, clean build" />
</project>

1 个答案:

答案 0 :(得分:0)

你的jar任务只包含build.dir,尝试将src.dir添加到jar中

<fileset dir="${build.dir}" />
<fileset dir="." includes="**/*.java"/>