2010-04-09 53 views
0

我創建了一個Maven2項目。一切正常。現在,我已經建立了一個Hudson項目,以便使夜間建造成爲可能。 Hudson應該從Subversion版本庫檢出當前項目狀態,運行測試,構建項目並將每個部署部署到一個存儲庫。我的Subversion repositroy包含我的Maven2項目,但沒有位於我的本地Maven倉庫(.m2)中的jar。 這可能就是爲什麼哈德森失敗了,說一些第三方罐子不可用。在這裏,我不得不說我的本地Maven倉庫(.m2)中有一些JAR,它們在任何Maven倉庫中都不可用。因此,不可能下載這些罐子。 Hudson是否具有連接到本地.m2存儲庫的能力?還是有另一種方法可以讓這些jar文件可用於Hudson?哈德森找不到本地的maven倉庫(包括第三方jar)

非常感謝您的幫助。

回答

0

是否有另一種方法使這些jar文件可用於Hudson?

這是很髒,但你可以替換「哈德森的本地資源庫」和「本地資源庫」(即哈德森在其下運行的用戶的本地存儲庫)。我的意思是替換這裏,即刪除$HUDSON_HOME/.m2/repository和複製$YOUR_USER_HOME/.m2/repository不合並)。

但正如我所說的,這是非常骯髒的,您應該使用公司存儲庫並在公共存儲庫中的公共存儲庫中安裝不可用的工件。

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的只是由我做出了決定,他們不相關,但是強制性的。

我希望這會有所幫助。

+0

太棒了,謝謝。這幫了我很多忙。 – 2013-04-15 06:42:35