我已通过official documentation中描述的方法将类路径上的jar名称添加到清单文件中。
即。通过添加
<manifest>
<addClasspath>true</addClasspath>
</manifest>
到ejb插件。现在我不想要所有这些文件,但想要排除其中的一些(因为它们是由webSphere直接提供的,不应该列出)。
问题:我可以在这里申请任何排除机制吗?
答案 0 :(得分:1)
目标容器提供的Maven依赖项应列为scope
provided
。根据{{3}}
这很像compile,但表示您希望JDK或容器在运行时提供依赖项。例如,在为Java Enterprise Edition构建Web应用程序时,您可以将Servlet API和相关Java EE API的依赖关系设置为提供的范围,因为Web容器提供了这些类。此范围仅在编译和测试类路径中可用,并且不可传递。
因此,您应该将相关的依赖关系设置为提供的范围:
<dependency>
<groupId>...</groupId>
<artifactId>..</artifactId>
<version>...</version>
<scope>provided</scope>
</dependency>
Maven将用它进行编译,测试但不用于包装。它也将从Manifest类路径中排除。
您可以检查official documentation provided
和compile
范围之间的差异(默认值,无需在每个依赖关系声明中指定),而this SO question完全具有相反的问题。