首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将绑定类路径jars及其依赖项从maven repo复制到我的本地lib文件夹?

如何将绑定类路径jars及其依赖项从maven repo复制到我的本地lib文件夹?
EN

Stack Overflow用户
提问于 2011-07-07 08:30:22
回答 1查看 2.6K关注 0票数 4

我们正在开发一个Eclipse 应用程序。我们决定使用SVN作为修改控制系统。我们可以在eclipse环境中导出eclipse产品。一切都很好。

但,

我们的一些插件使用bundle-classpath在其manifest.mf中依赖于常规的java jars。到目前为止,我们正在将这些jars提交到SVN存储库中。我们“听说”将jars提交到svn中是错误的,我们应该使用 maven -tycho,并为此将这些jars放入maven存储库。

因此,我们将jars从SVN存储库移到Maven存储库。然后我们想要设置一个新的dev环境,我们检查了svn中的项目,因为我们没有jars,所以它们有编译错误!

我们使用了m2eclipse,并在新创建的pom.xml文件中定义了所有依赖项。maven-dependency的复制目标,并列出所有的jars,然后我们运行mvn验证,将jars放到我们的lib文件夹中。它起了作用,但在我看来有点丑。因为我的插件的pom.xml看起来像是两次定义每个依赖项:

代码语言:javascript
复制
<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文件夹中?

我尝试了复制依赖目标,但是它试图找到我的插件所依赖的其他插件的jars。我只需要将常规的jars复制到本地库中。我的其他插件已经与所有的源代码并排作为一个插件项目。我不需要他们的罐子。我能过滤掉吗?我尝试过,但没有成功:

代码语言:javascript
复制
        <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>

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-07 09:08:48

您需要决定是否要复制传递依赖关系。

maven依赖项-plugin 1允许复制传递依赖项(“复制依赖项”目标,只需要在pom中将依赖项添加到依赖项部分),或者只是某些没有传递依赖项的工件(“复制”目标,只需要向插件的配置部分添加工件)。在使用复制依赖项时,还可以从传递依赖链中包含/排除某些artifactIds,请参见2。

--

1

2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6607805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档