是否必须在EAR中的WAR中重复使用常见的JAR?

dac*_*cot 6 java enterprise-library java-ee

我有一个JAR文件用于授权.我需要为每个WAR文件使用它.所有WAR文件都打包在EAR文件中.我是否必须在每个WAR中重复这个常见的JAR,或者是否存在公共库的结构?

所以我的例子看起来像这样......

big.ear
  - META-INF
    - MANIFEST.MF
    - application.xml
  - appl1.war
    - META-INF
      - MANIFEST.MF
    - WEB-INF
      - web.xml
      - lib
        - unique1.jar
        - unique2.jar
        - unique3.jar
        - common1.jar
    - jsps/html/etc
  - appl2.war
    - META-INF
      - MANIFEST.MF
    - WEB-INF
      - web.xml
      - lib
        - unique3.jar
        - unique4.jar
        - common1.jar
    - jsps/html/etc
  - appl3.war
    - META-INF
      - MANIFEST.MF
    - WEB-INF
      - web.xml
      - lib
        - unique5.jar
        - common1.jar
    - jsps/html/etc
Run Code Online (Sandbox Code Playgroud)

我的每个WAR应用程序都可以看到common1.jar,但它在EAR中有三次.

我可以在EAR结构中放置common1.jar,以便appl1,appl2和appl3可以看到它而不重复三次?

Oli*_*ier 6

标准方法是将JAR放在EAR的根目录下,并在Class-PathWARs 的属性中引用它们META-INF/MANIFEST.MF.看到这篇文章.

检查容器的文档以确保它受支持.