29

在 JBoss AS 7 中,依赖于 AS 中包含的库的 Web 应用程序必须在 META-INF/MANIFEST.MF 中声明这些依赖项,如下所示:

Dependencies: <package-name>

例子:

Dependencies: org.slf4j

(这与 Import-Package: for OSGi 相当。)有关从旧版本迁移类加载部署的隐式模块依赖项的文章可以找到更多信息

该项目是用 Maven 构建的。AS 中包含的所有依赖项都声明为“提供”范围。

现在的问题

是否有一种简单的方法可以使用 Maven 自动创建此依赖项列表?

仅应包含声明范围为“已提供”的依赖项,因为所有其他依赖项都已包含在 WAR 中。

4

2 回答 2

27

这些依赖项由 Maven 工件没有任何映射的名称声明。您可能可以使 groupId 与 jboss 模块名称保持同步,但我不确定这是否是个好主意。而且我仍然想不出任何自动化的解决方案。

但是有一个地方您可以手动管理配置,如您在问题中提供的来源之一所述:

   <build>
       ...
       <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-war-plugin</artifactId>
           <configuration>
              <archive>
                 <manifestEntries>
                    <Dependencies>org.slf4j</Dependencies>
                 </manifestEntries>  
              </archive>
           </configuration>
         </plugin>   
       </plugins>
    </build>

我希望有人想出一个插件来减少它的麻烦。

于 2011-07-16T08:54:56.530 回答
1

此代码在您的 MANIFEST.MF 中自动添加所有编译依赖项

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-war-plugin</artifactId>
   <version>2.4</version>
   <configuration>
      <archive>
         <manifest>
            <addClasspath>true</addClasspath>
         </manifest>
      </archive>
   </configuration>
</plugin>

更多信息在这里:http ://maven.apache.org/plugins/maven-war-plugin/examples/war-manifest-guide.html

于 2013-11-08T19:57:18.647 回答