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中包含一组jar文件';秘书/图书馆主任_Java_Ant_Jar - Fatal编程技术网

Java 需要一个ANT任务在最终的jar中包含一组jar文件';秘书/图书馆主任

Java 需要一个ANT任务在最终的jar中包含一组jar文件';秘书/图书馆主任,java,ant,jar,Java,Ant,Jar,我的项目文件夹中有一堆相关JAR: /lib/someapi-1.1.1/main.jar /lib/someotherapi-2.2.2/api-2.2.2.jar /lib/... 我构建了一个JAR文件,我的应用程序要求依赖JAR包含在JAR中的/lib文件夹中的最终JAR中,因此最终JAR应该具有如下结构: /org/me/myclasses.class /lib/main.jar /lib/api-2.2.2.jar 如何获取最后一个jar文件的/lib目录中包含的/lib/*.j

我的项目文件夹中有一堆相关JAR:

/lib/someapi-1.1.1/main.jar
/lib/someotherapi-2.2.2/api-2.2.2.jar
/lib/...
我构建了一个JAR文件,我的应用程序要求依赖JAR包含在JAR中的/lib文件夹中的最终JAR中,因此最终JAR应该具有如下结构:

/org/me/myclasses.class
/lib/main.jar
/lib/api-2.2.2.jar
如何获取最后一个jar文件的/lib目录中包含的/lib/*.jar文件


澄清


基本上,我只是尝试将一组资源文件展平并添加到最后一个jar中的给定目录中。

我看到的最简单的方法是使用
copy
任务及其
flatte
属性将所有jar复制到一个临时文件夹中,并将这个临时目录的jar包含到目标jar中


由询问者添加的详细信息

以下是最终ANT目标的外观(供将来参考):


如果您想跳过复制步骤,可以这样做。它用于将源库目录展平到classes/lib区域

<jar destfile="${dist}/MyOneBigJar.jar">
    <fileset dir="${classes}"/>
    <mappedresources>
      <fileset dir="lib">
          <include name="**/*.jar" />
      </fileset>
      <chainedmapper>
          <flattenmapper />
          <globmapper from="*" to="classes/lib/*" />
      </chainedmapper>
    </mappedresources>
</jar>


我并不真正需要一个jar的可执行功能和自定义类加载器,我在这里使用的是Hadoop,该应用程序已经能够解包jar文件的/lib目录并将它们添加到自己的类路径中。我只需要将文件压缩到/lib中,我可以手动操作,但我想将其自动化。是的,但我不知道如何将我想要的文件展开并添加到jar中的指定路径。
<jar destfile="${dist}/MyOneBigJar.jar">
    <fileset dir="${classes}"/>
    <mappedresources>
      <fileset dir="lib">
          <include name="**/*.jar" />
      </fileset>
      <chainedmapper>
          <flattenmapper />
          <globmapper from="*" to="classes/lib/*" />
      </chainedmapper>
    </mappedresources>
</jar>