0

我目前正在使用 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 文件的 Class-Path 条目中。

我的 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 并排除 remaning。

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

我怎样才能实现上述场景。

谢谢,

4

1 回答 1

2

将范围“提供”添加到非必需的依赖项:

        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <version>..</version>
            <scope>provided</scope>
        </dependency>
于 2013-11-06T09:15:16.767 回答