我们正在开发一个Eclipse RCP应用程序。我们决定将SVN用于版本控制系统。我们可以在 eclipse 环境中导出一个 eclipse 产品。一切正常。
但,
我们的一些插件依赖于在其 manifest.mf 中使用bundle-classpath的常规 java jar 。到目前为止,我们将这些 jars 提交到 SVN 存储库中。我们“听说”将 jars 提交到 svn 是错误的,为此我们应该使用maven-tycho并将这些 jars 放入 maven 存储库中。
因此,我们将 jar 从 SVN 存储库移至 Maven 存储库。然后我们想设置一个新的开发环境,我们从 svn 中检查了项目,它们有编译错误,因为我们没有 jars!
我们使用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 文件夹?
我尝试了copy-dependencies 目标,但它试图找到我的插件所依赖的其他插件的 jar。我只需要将常规 jar 复制到我的本地库中。我的其他插件已经与它们的所有源代码一起作为插件项目存在。我不需要他们的罐子。我可以过滤掉那些吗?我试过这个没有成功:
<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>
谢谢