Maven - исключить указанную зависимость c, используя профиль сборки - PullRequest
0 голосов
/ 05 февраля 2020

На основе реструктуризации JDK11 tools.jar я пытался исключить ее из зависимости POM следующим образом

<profile>
    <id>exclude-if-jdk11</id>
    <activation>
        <jdk>11</jdk>
    </activation>
    <properties>
       <!-- bla bla bla -->
    </properties>
    <dependencies>
    <dependency>
    <groupId>com.internal.mypomz</groupId>
    <artifactId>mypomext</artifactId>
    <type>pom</type>
    <version>1.1</version>
    <exclusions>
        <exclusion>
            <groupId>jdom</groupId>
            <artifactId>jdom</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
        </exclusion>
    </exclusions>
</dependency>
</dependencies>
</profile>  

Несмотря на вышесказанное, я получаю сообщение об ошибке, что tools.jar не может быть найден в * Папка 1005 *. Но я ожидал, что этот поиск в банке будет пропущен. Я что-то неправильно настроил?

1 Ответ

0 голосов
/ 05 февраля 2020

После небольшого копания мы обнаружили, что была военная зависимость, которая также приносила tools.jar. Так что да, исправление использовало mvn dependency:tree сначала мы проверили, кто выбирает банки. Затем исключите их по отдельности, пока mvn dependency:tree не покажет никаких доказательств этого.

Мы получили его для работы как с JDK11, так и с JDK8. Кроме того, в качестве обновления к телу profile, опубликованному в вопросе, теперь мы исключили все tools.jar из POM, и он стал более управляемым.

...