can';t使用ant提取的依赖项制作jar

can';t使用ant提取的依赖项制作jar,ant,jar,Ant,Jar,我想使用ant构建我的项目,但我有一个小问题。我的问题是,我需要输出jar将我所有的.class和我所有的jar依赖项提取出来而不是压缩 <project name="ivy example" default="compress" xmlns:ivy="antlib:org.apache.ivy.ant"> <target name="resolve" description="Resolve and retrieve with ivy"> &l

我想使用
ant
构建我的项目,但我有一个小问题。我的问题是,我需要输出
jar
将我所有的
.class
和我所有的
jar
依赖项提取出来而不是压缩

<project name="ivy example" default="compress" xmlns:ivy="antlib:org.apache.ivy.ant">

    <target name="resolve" description="Resolve and retrieve with ivy">
        <ivy:resolve />
        <ivy:cachepath pathid="compile.path" />
    </target>

    <target name="compile" depends="resolve" description="compilation">
       <mkdir dir="build/classes" />
       <javac srcdir="src" destdir="build/classes">
           <classpath refid="compile.path" />
       </javac>
    </target>

    <target name="compress"  depends="compile">
        <jar destfile="output/engine.jar" filesonly="true" update="true">
        <fileset dir="build/classes" />
        <fileset dir="lib"/>
            <manifest>
                <attribute name="Created-By" value="vireton"/>
                <attribute name="Main-Class" value="HelloIvy"/>
            </manifest>
        </jar>
        <echo>Building .jar file completed successfully!</echo>
    </target>

</project>

构建.jar文件成功完成!
该代码生成我的
engine.jar
,并输出
+
依赖项.jar
。 我希望它生成我的类和提取的依赖项


有人能帮忙吗?

将lib文件夹的所有jar提取到某个临时文件夹(使用unjar任务),然后通过将此临时文件夹添加为文件集来创建engine.jar


就像手工操作一样。

将lib文件夹的所有jar提取到某个临时文件夹(使用unjar任务),然后通过将此临时文件夹添加为文件集来创建engine.jar


就像手工操作一样。

我通过将依赖项提取到一个tmp目录,然后将这两个目录制作一个jar(src&tmp)


我发现了一个更好的方法,用

 <target name="compress"  depends="compile">
     <delete file="output/engine.jar" />
        <jar destfile="output/engine.jar" update="true">
        <zipgroupfileset dir="lib" includes="*.jar"/>
        <zipfileset dir="build/classes" />          
    </jar>  
   </target>

我通过将依赖项提取到一个tmp目录,然后为两个目录制作一个jar(src&tmp)


我发现了一个更好的方法,用

 <target name="compress"  depends="compile">
     <delete file="output/engine.jar" />
        <jar destfile="output/engine.jar" update="true">
        <zipgroupfileset dir="lib" includes="*.jar"/>
        <zipfileset dir="build/classes" />          
    </jar>  
   </target>

多亏了

    <ivy:cachepath pathid="compile.path" />

因此,将它们捆绑到最终jar中的最简单方法是(假设Ant1.8或更高版本)



这将直接从你的常春藤缓存中读取jar,你不需要先将它们
检索到本地
lib
目录中。

多亏了

    <ivy:cachepath pathid="compile.path" />

因此,将它们捆绑到最终jar中的最简单方法是(假设Ant1.8或更高版本)



这将直接从你的常春藤缓存中读取jar,你不需要
首先将它们检索到本地
lib
目录中。

我对ant脚本是新手,所以我不知道如何取消jar,然后将jar作为文件集。你能给我一个帮助或参考吗。我不熟悉ant脚本,所以我不知道如何取消jar,然后将jar作为文件集。你能给我一个帮助或参考吗+1.不知道zipgroupfileset,它确实更简单更干净。+1。我不知道zipgroupfileset,它确实更简单更干净。