【问题标题】:how to add a complete folder to a jar file by ant如何通过ant将完整的文件夹添加到jar文件中
【发布时间】:2012-11-07 20:49:52
【问题描述】:

我想在我拥有的地方用 ant 创建一个像“胖”罐子一样的东西,不仅是常用的类、清单文件等,还有我的“libs”文件夹。

我试过了:

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

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

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

【问题讨论】:

    标签: ant jar


    【解决方案1】:

    如果您指定使用该目录作为文件集的根目录,那么您可以只匹配该目录,它将保留结构。

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

    【讨论】:

      【解决方案2】:

      使用这个蚂蚁扩展:http://one-jar.sourceforge.net/

      还有Eclipse插件:FatJar

      【讨论】:

        【解决方案3】:

        您必须执行以下操作。具体来说,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>
        

        【讨论】:

        • 但是使用 fileset 命令,我必须指定 libs 文件夹中的每个文件?
        • 不是文件集...ZIP文件集。在此处查看描述 - 它完全符合您的要求:ant.apache.org/manual/CoreTypes/zipfileset.html。它说,“当使用 dir 属性时,zipfileset 会填充 dir 下的文件系统文件。” (这与我的示例类似。)
        【解决方案4】:
        猜你喜欢
        • 1970-01-01
        • 2019-09-19
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        • 1970-01-01
        相关资源
        最近更新 更多