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
ant-build jar,在清单类路径中包含lib_Jar_Ant_Manifest_Ivy - Fatal编程技术网

ant-build jar,在清单类路径中包含lib

ant-build jar,在清单类路径中包含lib,jar,ant,manifest,ivy,Jar,Ant,Manifest,Ivy,我目前有以下用于构建我的jar: <jar jarfile="${bin.dir}/${name}.jar" basedir="${build.src.dir}"> <zipfileset src="${bin.lib.dir}/dependencies-compact.jar" excludes="META-INF/*.SF" /> </jar> 但这会让罐子里的东西乱七八糟

我目前有以下用于构建我的jar:

 <jar jarfile="${bin.dir}/${name}.jar" basedir="${build.src.dir}">
            <zipfileset src="${bin.lib.dir}/dependencies-compact.jar"
                        excludes="META-INF/*.SF" />
  </jar>


但这会让罐子里的东西乱七八糟。现在计划在jar中,将有一个名为lib的文件夹,MANIFEST.MF的classpath变量将更新为lib文件夹中所有jar的列表。如何在ant上实现这一点?

清单中的类路径指的是外部jar,而不是您在jar文件中提取的类

下面是我如何使用ivy将jar的依赖项放入相邻的“lib”目录,然后使用ANT任务构造进入jar清单的字符串的示例:

  <target name="build" depends="compile">
    <ivy:retrieve pattern="${dist.dir}/lib/[artifact].[ext]"/>

    <manifestclasspath property="jar.classpath" jarfile="${dist.jar}">
      <classpath>
        <fileset dir="${dist.dir}/lib" includes="*.jar"/>
      </classpath>
    </manifestclasspath>

    <jar destfile="${dist.jar}" basedir="${build.dir}/classes">
      <manifest>
        <attribute name="Main-Class" value="${dist.main.class}"/>
        <attribute name="Class-Path" value="${jar.classpath}"/>
      </manifest>
    </jar>
  </target>