我有一些外部jar的运行时依赖项,我想"重新"到一个jar中.这些外部依赖项存储在external_jars目录中,我希望不必全部列出它们(即,如果我的依赖项发生更改,则不需要更改构建脚本).有什么想法吗?
谷歌给了我一个很好的答案,如何做到这一点 - 如果你不介意将每个jar列为依赖:
http://markmail.org/message/zijbwm46maxzzoo5
粗略地说,我想要的是下面的内容,它们将lib目录中的所有jar组合成out.jar(带有一些合理的覆盖规则).
jar -combine -out out.jar -in lib/*.jar
nightingale.. 66
弗拉基米尔的答案是正确的,但我觉得他的建议意味着重新包装一个大的out.jar中的所有罐子,然后将其作为单个
或类似的东西送到Ant Jar任务.这种两步法是不必要的.我不确定这是否与Ant版本有关,但我有Ant 1.7.1,它的
任务理解
,它允许直接提供第三方罐子的所有内容.
Vladimir.. 57
只需使用zipgroupfileset
Ant Zip任务即可
这将使所有包含的jar库内容变得扁平化.
弗拉基米尔的答案是正确的,但我觉得他的建议意味着重新包装一个大的out.jar中的所有罐子,然后将其作为单个
或类似的东西送到Ant Jar任务.这种两步法是不必要的.我不确定这是否与Ant版本有关,但我有Ant 1.7.1,它的
任务理解
,它允许直接提供第三方罐子的所有内容.
只需使用zipgroupfileset
Ant Zip任务即可
这将使所有包含的jar库内容变得扁平化.
你可以看看jarjar:
http://code.google.com/p/jarjar/
首先尝试将JAR解压缩到编组目录:
${marshall.dir}
临时目录在哪里,${external.jar.dir}
是您保留JAR的位置,并且${combined.jar}
是目标JAR.