Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Ant jar任务只包含一个类文件_Java_Ant_Jar_Target - Fatal编程技术网

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

Java Ant jar任务只包含一个类文件,java,ant,jar,target,Java,Ant,Jar,Target,我有一项艰巨的任务 <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.compa

我有一项艰巨的任务

<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中,我只想包括com/company/utils文件夹中的两个文件MyClass.class和MyClass$1.class

如果我在运行任务时将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>

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>