Java Ant:创建没有路径信息的tar?
更新:我正在Windows XP上使用Ant 1.8.1 我正在尝试为多个项目编写Ant主构建文件。我可以为每个项目成功地创建一个jar,我想将所有这些jar打包到一个tar.gz文件中。每个jar文件都位于其各自项目的bin子目录中,但将来可能会更改此路径。我试过这样的方法:Java Ant:创建没有路径信息的tar?,java,ant,jar,tar,Java,Ant,Jar,Tar,更新:我正在Windows XP上使用Ant 1.8.1 我正在尝试为多个项目编写Ant主构建文件。我可以为每个项目成功地创建一个jar,我想将所有这些jar打包到一个tar.gz文件中。每个jar文件都位于其各自项目的bin子目录中,但将来可能会更改此路径。我试过这样的方法: <tar destfile="foo.tar.gz" compression="gzip" > <tarfileset dir="."> <include name="**
<tar destfile="foo.tar.gz" compression="gzip" >
<tarfileset dir=".">
<include name="**/*.jar" />
</tarfileset>
</tar>
我需要:
foo.tar.gz
project1.jar
project2.jar
我试图使用Ant的复制任务将这些jar文件复制到一个临时目录,然后从那里对它们进行tar。但是,复制操作会复制目标目录中的路径。所以,同样的问题。我想你差不多做到了,已经组装了一个扁平的文件目录。剩下的就是去掉
tarfileset
元素,该元素专门用于保存/插入结构。我认为tar
和zip
任务与嵌入的fileset
元素配合得很好
文档证明了这一点-直到1.7fileset
是可以用来代替tarfileset
的嵌入式资源元素
仔细想想,我认为一旦切换到文件集
,您可能就不再需要临时复制文件进行展平
编辑: 我刚刚构建并运行了这个构建文件:
<project name="tartest" default="teer">
<target name="teer">
<tar destfile="tartest.tar">
<fileset dir="../Downloads" includes="*.ico *.gif"/>
</tar>
</target>
</project>
另外,tar-xvf tartest.tar
将tarred文件转储到我当前的目录中
所以。。。你做了哪些不同的事情,导致了不同的结果
编辑2: 从重读你的问题中获得更多的洞察力。我完全避开了由
***
通配符生成的源路径问题
由于您已经在考虑将这些jar文件复制到一个临时目录,所以缺少的只是在
copy
任务中使用flatten
属性。这应该能帮你解决问题。你也许可以与他人合作完成这项任务。它允许您控制提供自己前缀(或不提供前缀)的整体结构
您可能想看看Ant的。我尝试切换到文件集而不是tarfileset,但结果相同。对于迄今为止所有不相关的建议和评论,我深表歉意。我相信我的第二次更新现在有你需要的信息。谢谢!弗拉特成功了。我使用将所有jar文件复制到一个临时目录中,并从那里给它们涂上焦油。我必须使用通配符,如“*/.jar”,因为我有多个子项目(将来还要添加更多子项目)。我需要使其通用化,而不是手动将每一个都添加到构建文件中。我试图创建一个zip文件,它几乎与我上面提到的原始tar版本相同。结果是一样的。我尝试使用prefix属性,但它只是将文件的相对路径附加到我提供的前缀。例如,prefix=“test/out/”会在归档文件中创建路径为“test/out/project1/bin/project1.tar”等的文件。我也看到了这一点,但在某些地方,ant的文档过于神秘,无法帮助使用这些功能。我无法理解如何在
tar
任务中使用flattmapper
,因此我选择了使用copy
的flattle
属性的简单解决方案。您知道关于ant任务的更多有用文档吗?我忘了,这是它应该如何工作的,但是出于某种原因ant不允许您在tar
任务中使用映射器。最终,您必须按照事先所需的大致相同的布局构造文件。
<project name="tartest" default="teer">
<target name="teer">
<tar destfile="tartest.tar">
<fileset dir="../Downloads" includes="*.ico *.gif"/>
</tar>
</target>
</project>
-rw-r--r-- 0/0 3487 2009-12-28 20:04 actor075_thumb.gif
-rw-r--r-- 0/0 1456 2010-06-16 10:57 bea-logo.gif
-rw-r--r-- 0/0 23800 2010-06-16 09:22 ejb1.gif
-rw-r--r-- 0/0 1406 2010-05-15 10:40 favicon-beta.ico
-rw-r--r-- 0/0 1406 2010-05-15 10:25 favicon-clown.ico
-rw-r--r-- 0/0 1406 2008-12-06 01:08 favicon.ico
<zip destfile="${dist}/product.zip">
<zipfileset dir="bin/project1.jar" prefix="any/fake/path/you/want"/>
<zipfileset dir="bin/project2.jar" prefix="any/fake/path/you/want"/>
<zipfileset dir="some/other/path/project3.jar" prefix="any/fake/path/you/want"/>
</zip>
any/fake/path/you/want/project1.jar
any/fake/path/you/want/project2.jar
any/fake/path/you/want/project3.jar