Мы разрабатываем приложение Eclipse RCP . Мы решили использовать SVN для системы контроля версий. Мы могли бы экспортировать продукт Eclipse в среду Eclipse. Все работало нормально.
Но
Некоторые из наших плагинов имеют зависимости от обычных java-файлов, использующих bundle-classpath в их manifest.mf. До сих пор мы помещали эти банки в репозиторий SVN. Мы «слышали», что неправильно помещать jar-файлы в svn, и мы должны использовать maven-tycho и помещать эти jar-файлы в хранилище maven для этой цели.
Итак, мы перенесли банки из репозитория SVN в репозиторий Maven. Затем мы захотели настроить новую среду разработки, мы проверили проекты из svn, и у них были ошибки компиляции, потому что у нас нет jar!
Мы использовали m2eclipse и определили все зависимости в моих только что созданных pom.xml файлах. цель копирования maven-dependency-plugin и выведите список всех jar-файлов, а затем мы запустим mvn validate, чтобы получить jar-файлы в нашу папку lib. Это сработало, но мне кажется немного уродливым. Потому что pom.xml моего плагина выглядит как определение каждой зависимости дважды:
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copy-bundle-classpath-libs</id>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>lib</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<stripVersion>true</stripVersion>
<artifactItems>
<artifactItem>
<groupId>MyGroup</groupId>
<artifactId>MyJar</artifactId>
<version>SNAPSHOT</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>MyGroup</groupId>
<artifactId>MyJar</artifactId>
<version>SNAPSHOT</version>
<type>pom</type>
<scope>compile</scope>
</dependency>
</dependencies>
Есть ли способ избавиться от этого?
Кроме того, если у MyJar.pom есть другие зависимости, они мне тоже нужны в моей локальной библиотеке. Есть ли способ скопировать эти транзитивные зависимости в мою локальную папку lib ?
Я попробовал цель копирования-зависимостей , но он пытается найти файлы других плагинов, от которых зависит мой плагин. Мне просто нужно скопировать обычные банки в мою локальную библиотеку. Мои другие плагины уже есть рядом со всем их исходным кодом как проект плагина. Мне не нужны их банки. Могу ли я отфильтровать их? Я попробовал это безуспешно:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<excludeGroupIds>MyGroup</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>
Спасибо