2011-12-12 46 views
2

我需要依赖一个不在任何maven仓库中的jar。我目前只是有一个系统的依赖是这样的:使用url而不是文件添加系统maven依赖项

<dependency> 
    <groupId>com.nexua</groupId> 
    <artifactId>register</artifactId> 
    <version>1.5</version> 
    <scope>system</scope> 
    <systemPath>${basedir}/lib/register.jar</systemPath> 
</dependency> 

是有一些方法可以让我有一个文件链接到一个网址,而不是本地文件,所以它会保持最新既然这样我有吗?当我想要更新时手动替换文件。

回答

1

您最好使用内部(本地)存储库。这在«Introduction to Repositories»更详细地描述。基本上,你只需要在你的内部存储库下面用正确的文件名(在Maven约定下)将你的工件复制到适当的目录下,Maven就可以在不需要使用<systemPath>的情况下将它拾取。

这将需要您在更新时手动替换文件。 (实际上,要正确执行此操作,需要在内部存储库中包含带有单独版本后缀的新版本,并更新pom.xml中的<version/>。)唯一更好的解决方法是让其他人管理依赖关系 - 无论是在Maven中央存储库还是您从pom.xml引用的其他存储库位置。 (事实上​​,你可以设置你自己的 - 无论是为你自己还是你的工作组,我建议。)

+0

阅读此答案,我可能会认为URL不能用于路径。有没有人知道这是不是真的? – Chris

相关问题