2013-02-01 53 views
0

默认情况下,我知道使用Maven依赖关系,它将从本地回购(.m2目录)中获取所需的所有内容。在我的应用程序中,我不希望它依赖于本地目录,而是来自特定位置。我使用<scope>system</scope><systemPath>../path/to/file/</systemPath>,但它仍然依赖于.m2目录。无论如何,我可以改变Maven依赖关系的依赖吗?Maven-2:如何管理依赖依赖的地方?

与我的应用程序,我使用本机代码(C++),并有.nar.so文件。在这个例子中,我特别需要依赖于特定目录中的.so文件,但它总是进入.m2目录。有没有可以解决这个问题的插件?

另外,要注意我正在使用Maven 2.2.1。

回答

1

首先在Maven中没有什么可解决的。 Maven正在这样工作。在你的情况下,你需要一个不在Maven仓库中的工件,这意味着你需要将该文件转移到Maven仓库中,然后你可以使用简单的依赖来使用该文件(.so)。有两个可能的解决方案:

使用install-file到特定的文件安装到你的本地库的假象给予的groupId,artifactId和version

MVN安装:安装文件...

的其他最好的解决方案是使用repository manager并将所需的文件安装到存储库管理器中,这使得其他人也可以使用,而不仅仅是由您来使用。

+0

有没有办法覆盖依赖目录从本地回购到自定义路径? –

+0

@Rob,有一种方法来设置repo目录,但maven只需将所有的依赖关系下载到新的位置。如果你有一个通常不能通过maven central获得的依赖,你通常按照描述手动安装它,或者给它一个系统范围并指定它的路径。 –