1

在构建我的项目时,需要两个版本的 org.bouncy-castle:bcprov

  • org.bouncy-城堡:bcprov-jdk12
  • org.bouncy-城堡:bcprov-jdk16

因此,在列出依赖项时,我得到了jdkversion12

有什么办法可以修改pom文件,让jdkversion16先列出来?

4

1 回答 1

3

您可以通过像这样指定它来排除依赖项 - 在您的情况下,您将排除jdk12一个:

    <dependency>
            <groupId>group</groupId>
            <artifactId>artifact</artifactId>
            <version>1.0.0</version>
            <exclusions>
                    <exclusion>
                            <groupId>org.bouncycastle</groupId>
                            <artifactId>bcprov-jdk12</artifactId>
                    </exclusion>
            </exclusions>
    </dependency>

这样,只有jdk16一个应该被拉进来。

如果您需要根据您正在构建的位置和安装的 JDK 版本来提取两者之一,您可以使用配置文件来区分,例如:

<profile>
    <id>jdk12</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.2</jdk>
    </activation>
    <dependencies>
        <dependency>
            <groupId>group</groupId>
            <artifactId>artifact</artifactId>
            <version>1.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bcprov-jdk16</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</profile>
<profile>
    <id>jdk16</id>
    <activation>
        <jdk>1.6</jdk>
    </activation>
    <dependencies>
        <dependency>
            <groupId>group</groupId>
            <artifactId>artifact</artifactId>
            <version>1.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bcprov-jdk12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</profile>

示例取自:http: //svn.apache.org/repos/asf/webservices/wss4j/trunk/pom.xml

于 2012-04-02T11:16:22.057 回答