java - 排除 MANIFEST.MF 中的条目

标签 java maven pom.xml

我目前正在使用 maven-ear-plugin 构建 EAR 文件

我需要从 MANIFEST.MF 文件中排除一些 Class-Path: 条目。

例如,我的类路径中有 3 个依赖项 hibernate-core.jar、quartz-1.6.5.jar 和 poi-3.7.jar(在我的 pom.xml 依赖项中)

当我构建 EAR 文件时,所有这些条目都将自动添加到 MANIFEST.MF 文件的类路径条目中。

我的 Maven 构建如下

<build>
    <finalName>MyEAR</finalName>
    <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <configuration>
            <archive>
                <addMavenDescriptor>false</addMavenDescriptor>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <addExtensions />
                    <classpathPrefix />
        </manifest>
                <manifestFile>src/main/resources/META-INF/MANIFEST.MF               </manifestFile>
            </archive>
            .....
            .....
        </configuration>
    </plugin>
    </plugins>
</build>

在上面的构建文件中

 <addClasspath>true</addClasspath>

负责添加 MANIFEST.MF 条目。

我的要求是仅在依赖项quartz-1.6.5.jar和poi-3.7.jar中添加2个jar,并排除剩余的。

如果我给出 false,所有条目都会从 MANIFEST.MF 类路径中排除。 如果从 pom 中删除依赖项,我会收到编译错误。

如何实现上述场景。

谢谢

最佳答案

将范围“provided”添加到非必需依赖项:

        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <version>..</version>
            <scope>provided</scope>
        </dependency>

关于java - 排除 MANIFEST.MF 中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19805629/

相关文章:

java - 将类添加到 Swing 包 - 结果是可见函数上的 IllegalAccessError

java - 使用注释和@Valid的Spring表单验证

java - 当我在 java 的接口(interface)中初始化实例变量时,为什么没有出现编译错误

java - Maven 用类打包资源

java - 是否可以在 Maven POM 的描述中包含格式(即 HTML)?

java - Resin 的 `pomegranate' - 自动神奇加载项目的 Maven jar 依赖项 - 但如何使用 pom.xml 为它们生成 jar?

java - 对话框中的Android自定义样式

Maven从不同的依赖项中动态排除具有相同名称的类

java - 如何从命令行禁用 Maven Javadoc 插件?

maven - 将具有大量 jar 库的遗留 Java 项目转换为 maven 项目依赖项列表的简单方法是什么?