Ant jar任务只包含一个类文件



我有一个重要的任务

<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有多个包和类文件,但在我的jar中,我只想包含两个文件MyClass.class和MyClass$1.class,它们位于com/company/utils文件夹中。

如果我的base-dir为com/company/utils,当我运行任务时,jar没有像com/company/utils这样的包文件夹,而不是在jar文件中创建,但是如果我将base-dir更改为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>

相关内容

最新更新