Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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 - Fatal编程技术网

Java 在ant中创建了多个JAR文件

Java 在ant中创建了多个JAR文件,java,ant,jar,Java,Ant,Jar,我试图在一个ant任务中创建4个单独的jar文件,但我不确定如何做到这一点。是不是我必须在舱单上加上什么?我希望能够有一个jar任务,但能够分别运行java程序prob1prob2prob3和prob4。可能吗?任何帮助都将不胜感激 这就是我现在的jar任务: <target name="jar"> <mkdir dir="build/jar"/> <jar destfile="build/jar/prob1.jar" basedir

我试图在一个ant任务中创建4个单独的jar文件,但我不确定如何做到这一点。是不是我必须在舱单上加上什么?我希望能够有一个jar任务,但能够分别运行java程序prob1prob2prob3和prob4。可能吗?任何帮助都将不胜感激

这就是我现在的jar任务:

<target name="jar">
        <mkdir dir="build/jar"/>
        <jar destfile="build/jar/prob1.jar" basedir="build/classes" includes="build/classes/*">
        <manifest>
                <attribute name="Main-Class" value="prob1"/>
            </manifest>
        </jar>
    </target>

如果您不喜欢复制粘贴,可以为
jar
任务创建宏:

<macrodef name="create.jar">
    <attribute name="name"/>
    <sequential>
        <jar destfile="build/jar/@{name}.jar" basedir="build/classes"
             includes="build/classes/*">
            <manifest>
                <attribute name="Main-Class" value="@{name}"/>
            </manifest>
        </jar>
    </sequential>
</macrodef>

为您提供以下信息的库:


macrodef是前进的道路-ant contrib永远不是道路。试图让ant成为脚本语言会让人落泪。
<target name="jar">
    <mkdir dir="build/jar"/>
    <create.jar name="prob1"/>
    <create.jar name="prob2"/>
    <create.jar name="prob3"/>
    <create.jar name="prob4"/>
</target>
<target name="jar">
    <mkdir dir="build/jar"/>
    <for list="1,2,3,4" param="num">
        <sequential>
            <jar destfile="build/jar/prob@{num}.jar" basedir="build/classes"
                 includes="build/classes/*">
                <manifest>
                    <attribute name="Main-Class" value="prob@{num}"/>
                </manifest>
            </jar>
        </sequential>
    </for>
</target>