Ant jar 任务仅包含一个 class 文件

Ant jar task include a single class file only

我有一个蚂蚁任务

<target name="create_jar" depends="compile">        
    <jar destfile="build/temp/MyClassJar.jar"  basedir="build/classes/com/company/utils">
        <manifest>
            <attribute name="Main-Class" value="com.company.utils.MyClass"/>
        </manifest>
    </jar>
</target>

文件夹 build/classes 有多个包和 class 文件,但在我的 jar 中我只想包含两个文件 MyClass.class 和 MyClass$1.class com/company/utils 文件夹。

如果我有 base-dir 作为 com/company/utils 当我 运行 jar 没有包文件夹的任务时 com/company/utils 没有在 jar 文件中创建但是如果我将我的基本目录更改为 build/classes 然后所有文件都被包含在内。 如何解决这个问题。

Jar 任务采用嵌套文件集,因此您可以这样做:

<jar destfile="build/temp/MyClassJar.jar">
    <fileset dir="build/classes" includes="**/MyClass*.class" />
    <manifest>
        <attribute name="Main-Class" value="com.company.utils.MyClass"/>
    </manifest>
</jar>