2012-10-08 136 views
1

我知道這樣的問題之前已經提出並回答過了,並花時間閱讀這些主題,但不知何故,它們不會幫助我。我在本地添加了自己的Java代碼到DSpace軟件,我的代碼依賴於另一個庫,所以我必須將該庫(JAR)包含在POM的<dependencies>部分中,對不對?這是我的條目如下:Maven:在POM中包含外部JAR

<dependency> 
     <groupId>de.mannheim.ids</groupId> 
     <artifactId>pid</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <systemPath>/absolute/path/to/jar/pid-client-0.0.1-SNAPSHOT.jar</systemPath> 
     <scope>system</scope> 
</dependency> 

這不幫助,但結果編譯錯誤 - 相關的類不能被發現。我也嘗試過mvn install:install-file -Dfile...,它告訴我一切正常的罐子(BUILD SUCCESS),但隨後的mvn package失敗,通常的錯誤。

我會做什麼錯?

+0

呃......以前的評論只是消失了,提示使用'compile'範圍而不是'system'。 這是不是意味着其他庫必須位於存儲庫中?對不起,如果我不清楚這一點,我只有本JAR的本地副本。另外,'systemPath'元素只允許使用'system'作用域。 – Joko

回答

2

在使用mvn install:install後,您應該可以照常使用工件。

如果命令返回構建成功,你應該能夠在你的POM中使用此:

<dependency> 
     <groupId>de.mannheim.ids</groupId> 
     <artifactId>pid</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
</dependency> 

Maven會發現它喜歡它會發現在你的本地庫的任何罐子。

+0

感謝Olivier,'mvn install:install'(沒有文件說明等)給了我一個我不明白的錯誤 - 你能幫忙嗎? [INFO] [install:install {execution:default-cli}] [INFO] ---------------------------- ----------------------------- [錯誤]編譯錯誤 [INFO] ----------- ---------------------------------------------- [INFO]該項目的包裝沒有將文件分配到構建工件上 – Joko

+0

您可以複製/粘貼您鍵入的確切命令嗎?請參閱此處的使用說明文件:http://maven.apache.org/plugins/maven-install-plugin/usage.html。並非所有參數都是強制性的,但您至少需要指定以下「mvn -X install:install-file -Dfile = path/to/mly/jar -DgroupId = j -DartifactId = -Dversion = -Dpackaging = jar'。當然,你需要在你的pom中指定相同的artifactId,groupId和版本。 –

+0

這是我的確切命令: 'mvn install:install-file -Dfile =/home/joachim/workspace/DSpace3/pid-client-0.0.1-SNAPSHOT.jar -DgroupId = de.mannheim.ids -DartifactId = pid -Dversion = 0.0.1-SNAPSHOT -Dpackaging = jar' 此命令返回BUILD SUCCESSFUL,並且POM條目看起來就像您在答案中發佈的條目。 – Joko

相關問題