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将完整的文件夹添加到jar文件_Ant_Jar - Fatal编程技术网

如何通过ant将完整的文件夹添加到jar文件

如何通过ant将完整的文件夹添加到jar文件,ant,jar,Ant,Jar,我想用ant创建一个类似“胖”的罐子,在这里我不仅有普通的类、清单文件等,还有我的“libs”文件夹 我试过: <jar destfile="myjar.jar" update="yes" basedir="${libs.dir}"/> 但是这会在jar文件的根目录“libs”中添加文件,我希望libs文件夹本身也在jar中(当然还有它包含的所有内容) 我可以自己在jar中创建lib文件夹并将文件添加到jar中的特定位置吗?使用此ant扩展名: 还有Eclipse插件:FatJ

我想用ant创建一个类似“胖”的罐子,在这里我不仅有普通的类、清单文件等,还有我的“libs”文件夹

我试过:

<jar destfile="myjar.jar" update="yes" basedir="${libs.dir}"/>

但是这会在jar文件的根目录“libs”中添加文件,我希望libs文件夹本身也在jar中(当然还有它包含的所有内容)

我可以自己在jar中创建lib文件夹并将文件添加到jar中的特定位置吗?

使用此ant扩展名:


还有Eclipse插件:FatJar

您必须执行以下操作。具体来说,zipfileset命令。您基本上是说您想要构建${build.name}.jar(您可以硬编码一个路径为“myjar.jar”或类似的内容),然后将各种文件添加到jar中

希望这有帮助

<jar destfile="${dist}/${build.name}.jar">

    <!-- Generate the MANIFEST.MF file. -->
    <manifest>
        <attribute name="Built-By" value="${user.name}" />
        <attribute name="Release-Version" value="${version}" />
        <attribute name="Main-Class" value="my.lib.Main" />
            <attribute name="SplashScreen-Image" value="TitleScreen.png" />
        <attribute name="Class-Path" value="${classpath}" />
    </manifest>

    <zipfileset dir="${build.dir}" />
    <zipfileset dir="${resources}" />

    <fileset file="${resources}/icons/misc_icons/TitleScreen.png" />
</jar>

如果指定使用该目录作为文件集的根目录,则只需匹配该目录,即可保留该结构

<jar destfile="myjar.jar" >
  <fileset dir=".">
    <include name="**/${libs.dir}/**"/>
  </fileset>
</jar>


但是使用fileset命令,我必须指定libs文件夹中的每个文件,而不是fileset…ZIPfileset。请查看此处的描述-它完全符合您的要求:。它说,“当使用dir属性时,zipfileset将填充dir下的文件系统文件。”(这与我的示例类似。)