Как исключить зависимости eclipse-plugin при копировании зависимостей?

Это мой второй вопрос в Stackru. Первый был немного длинным. Я надеюсь, что на этот раз я могу сократить прямо к делу:)

Скажем, проект плагина Eclipse P зависит от плагина R через Require-Bundle. Итак, у нас есть 2 проекта в нашем рабочем пространстве Eclipse.

И снова, проект плагина Eclipse P зависит от обычного A.jar через Bundle-Classpath.

Наконец, A.jar находится в репозитории Maven со своим POM и зависит от B.jar.

Мне нужно скопировать A.jar и B.jar в локальную папку lib P, но НЕ R.jar.

В файлах POM GroupId для P и R - это G. GroupIds для A и B - разные, но НЕ G.

Я не понимаю почему, но целью copy-зависимостей является поиск R.jar, сбой, когда он не может найти его и не копирует A.jar или B.jar. Я пытаюсь использовать excludeGroupIds, но не удается:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <configuration>
        <excludeGroupIds>G</excludeGroupIds>
        <outputDirectory>lib</outputDirectory>
        <overWriteReleases>true</overWriteReleases>
        <overWriteSnapshots>true</overWriteSnapshots>
        <overWriteIfNewer>true</overWriteIfNewer>
        <stripVersion>true</stripVersion>
    </configuration>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>validate</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<dependencies>
    <dependency>
        <groupId>X</groupId>
        <artifactId>A</artifactId>
        <version>SNAPSHOT</version>
    </dependency>
</dependencies>

Есть ли способ исключить зависимости eclipse-plugin?

2 ответа

Вы пытались вызвать цель копирования-зависимостей вручную?

mvn dependency:copy-dependencies

Я создал небольшой проект maven jar с вашей конфигурацией. В моем проекте org.eclipse.core.jobs в качестве зависимости. Если я использую org.eclipse.core, org.eclipse.core.jobs.jar не копируется, но переходные зависимости, такие как org.eclipse.equinox.common.jar или org.eclipse.osgi.jar руда скопирована.

Когда я использую org.eclipse.equinox, только org.eclipse.equinox.common.jar не копируется. Так что, если я правильно понял вашу проблему, должен делать то, что вы хотите. Может быть, у вас есть ошибка типа в вашем groupId?

У меня была одна проблема, когда я попробовал это: моя первая попытка пошла не так, потому что я вставил только ваши G. Вторая попытка прошла, как и ожидалось, но я ошибочно вспомнил, что mvn clean не удаляет папку lib, поэтому сначала подумал, что все пошло не так.

Добавлять <excludeScope>provided</excludeScope> к maven-dependency-plugin Конфигурация, чтобы исключить зависимости, сгенерированные Tycho.

Другие вопросы по тегам