繁体   English   中英

可执行JAR和Ant

[英]Executable JAR & Ant

我第一次是为可执行JAR编写一个Ant build.xml文件,对于我需要在JAR中包含的内容感到困惑。

可以认为该项目由以下部分组成:

  1. 源代码
  2. 少数依赖JAR
  3. 通过ClassPathXmlApplicationContext为IoC提供的Spring配置文件(XML)

这是我的问题:由于这是可执行的JAR,我应该同时对所有依赖项JAR进行JAR还是将它们分开? 我怀疑我需要将它们包括在JAR中,如果是这样,那么最佳实践将对组织我的JAR有什么要求?

这是我的第一次尝试:

MyExecutableJARProgram.jar/
    META-INF/
        ...
    com/
    lib/
    config/

其中com/是我的顶级软件包, lib/是一个包含所有这些依赖项的目录, config/保存所需的XML文件。

(1)有什么想法吗?

另外,作为附带的问题,由于JAR文件将具有与Eclipse项目不同的目录结构,因此我需要以某种方式为我的JAR设置类路径(因此它知道要查找lib/作为其依赖项),以及指定在何处查找我的Spring XML文件。

(2)如何在JAR-清单文件中进行配置? 必须有某种方法可以通过Ant配置清单文件(或对该问题的答案是什么),因此我不需要每次构建时都手动编辑JAR。

感谢您的输入!

除非您愿意编写自定义类加载器,否则清单类路径不支持嵌套JAR。 相反,一种典型的方法是将任何第三方二进制文件和您的JAR放在相同(或众所周知的)目录中,并使用清单类路径相互引用。 请记住,清单类路径中的条目是相对于主jar的。

因此,对于一些不平凡的项目,您的发行版式可能类似于:

[apphome]
  +-- bin
        +-- command1.sh / .bat  (to supply -Xmx etc)
        +-- command2.sh / .bat
            ...
  +-- lib
        +-- module1.jar
        +-- module2.jar
            ...
        +-- command1.jar (manifest cp contains modules, 3rd party, main-class)
        +-- command2.jar
            ...
  +-- deps
        +-- 3rdparty1.jar
        +-- 3rdparty2.jar
             ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM