Как исключить зависимости eclipse-plugin при копировании зависимостей? - PullRequest
3 голосов
/ 07 июля 2011

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

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

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

Наконец, A.jar находится в mavenrepo с его POM и зависит от B.jar.

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

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

Я не понимаю, почему, но зависимость от копирования цель -поиск 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 ]

2 голосов
/ 14 июля 2011

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

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 ore скопировано.

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

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

1 голос
/ 17 августа 2012

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

...