当前位置:  开发笔记 > 编程语言 > 正文

清洁方式结合多个罐子?最好使用Ant

如何解决《清洁方式结合多个罐子?最好使用Ant》经验,为你挑选了4个好方法。

我有一些外部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

只需使用zipgroupfilesetAnt Zip任务即可


    

这将使所有包含的jar库内容变得扁平化.



1> nightingale..:

弗拉基米尔的答案是正确的,但我觉得他的建议意味着重新包装一个大的out.jar中的所有罐子,然后将其作为单个或类似的东西送到Ant Jar任务.这种两步法是不必要的.我不确定这是否与Ant版本有关,但我有Ant 1.7.1,它的任务理解,它允许直接提供第三方罐子的所有内容.


   
  
  
    
  



2> Vladimir..:

只需使用zipgroupfilesetAnt Zip任务即可


    

这将使所有包含的jar库内容变得扁平化.


令我感到遗憾的是,所有工作的答案似乎都围绕着编写一个ant构建文件,而且没有一个涉及简单的命令行调用.
如果你在ant中执行它,那么你可以将它作为目标包含在构建脚本中,这可能是你想要的唯一一次.

3> Staale..:

你可以看看jarjar:

http://code.google.com/p/jarjar/


卫生署!我调查了这个.它有许多高级功能,但事实证明我不需要它.缺少什么(至少从网站上的文档)是一个简单的方法来做类似的事情:jar -combine -out out.jar -in lib/*.jar这就是我需要的东西

4> David Grant..:

首先尝试将JAR解压缩到编组目录:


    
    
        
            
        
    
    
    

${marshall.dir}临时目录在哪里,${external.jar.dir}是您保留JAR的位置,并且${combined.jar}是目标JAR.


前面的例子将在jar文件中包含其他jar -as jar! - .另一方面,这个将首先将所有jar放空到*.class文件,然后从所有类文件创建一个jar.
推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有