我创建了一个Maven2项目。一切正常。现在,我已经建立了一个Hudson项目,以便使夜间构建成为可能。 Hudson应该从Subversion存储库中检出当前的项目状态,运行测试,构建项目并将每个部署到存储库。我的Subversion repositroy包含我的Maven2项目,但是我的本地Maven存储库(.m2)中没有jars。 这可能就是为什么哈德森以失败告终,说有些第三方罐子不可用。在这里,我不得不说我的本地Maven存储库(.m2)中有一些jar,它们在任何Maven存储库中都不可用。因此,没有可能下载这些罐子。 Hudson能否连接到本地.m2存储库?或者是否有其他方法可以将这些jar文件提供给Hudson?
提前感谢一百万人的帮助。
答案 0 :(得分:2)
是的,这是一种相对容易/快速的方法。
假设您使用Microsoft JDBC驱动程序类:sqljdbc4-3.0.jar
由于许可限制,此JAR在任何存储库中都不存在。
您可以使用依赖项中的范围system
来告诉maven从项目的相对文件夹中获取文件:
<dependency>
<groupId>com.microsoft</groupId>
<artifactId>sqljdbc4</artifactId>
<version>3.0</version>
<scope>system</scope>
<systemPath>${basedir}/libs/sqljdbc4-3.0.jar</systemPath>
</dependency>
请注意,groupId和artifactId只是由我组成,它们不相关,但是是强制性的。
我希望这会有所帮助。
答案 1 :(得分:0)
还有另一种方法可以让Hudson使用这些jar文件吗?
那是非常脏但你可以用“你的本地存储库”替换“Hudson的本地存储库”(即Hudson运行的用户的本地存储库)。我的意思是替换在这里,即删除$HUDSON_HOME/.m2/repository
并复制$YOUR_USER_HOME/.m2/repository
(不合并)。
但正如我所说,这非常脏,您应该使用公司存储库并在此公司存储库中的公共存储库中安装不可用的工件。