Проблема переходной зависимости Maven - PullRequest
1 голос
/ 02 апреля 2012

При создании моего проекта существует две версии org.bouncy-castle: требуется bcprov

  • org.bouncy-castle: bcprov-jdk12
  • org.bouncy-castle: bcprov-jdk16

Поэтому, перечисляя зависимость, я получаю jdkversion12

Есть ли способ изменить файл POM таким образом, чтобыjdkversion16 указан первым?

1 Ответ

3 голосов
/ 02 апреля 2012

Вы можете исключить зависимость, указав ее следующим образом - в вашем случае вы исключите jdk12 one:

    <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

...