2012-12-07 20 views
3

我是Maven的新手,我正嘗試第一次構建一個項目。我想寫一些依賴於apache lucene的代碼。這是我試圖獲得的list of artifacts in maven如何獲得來自maven版本組中的所有工件?

有沒有什麼辦法,而不是明確地列出每個神器,我可以簡單地依賴於特定版本的所有文物?我嘗試這樣做:

<dependency> 
    <groupId>org.apache.lucene</groupId> 
    <artifactId>*</artifactId> 
    <version>3.6.1</version> 
</dependency> 

這給了我org.apache.lucene錯誤

'dependencies.dependency.artifactId'::罐子價值 '' 不匹配的有效ID模式。 @ 19行,列19

我可以確認,我可以下載的依賴,當我明確說明它們。 IE瀏覽器能正常工作:

<dependency> 
    <groupId>org.apache.lucene</groupId> 
    <artifactId>lucene-core</artifactId> 
    <version>3.6.1</version> 
</dependency> 

我意識到這取決於Lucene的一切都可能是次優的,但做一些快速和骯髒的我討厭不得不手動填充所有這些小的Lucene庫。在maven中獲取大量相關依賴項的典型做法是什麼?

回答

3

簡短的回答:你不能。記住你只需做一次,稍後你可以簡單地複製粘貼依賴項(儘管不是很乾)。還要考慮創建一個原型,它將快速創建一個具有所有必需依賴關係的框架(用於快速和骯髒的項目)。

較長的答案:好的,你可以解決這個問題。創建一個單獨的pom.xml有:

<packaging>pom</packaging> 

並有手動聲明所有Lucene的依賴,此起彼伏。一勞永逸。稍後,您可以簡單地添加一個依賴於你的pom.xml(也就是定義有groupId/artifactId/version),這將傳遞地包括pom.xml的依賴關係。

談起傳遞:如果你依賴於一個Maven的JAR和JAR還有其他的依賴,你得到的傳遞依賴含蓄。檢查Lucene pom s,也許它足以導入其中的少數並依賴傳遞性依賴?

+0

AAAAH那是非常有用的,謝謝! –

0

裏面的的groupId單一依賴添加不同的artifactId的

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <artifactId>spring-context</artifactId> 
     <artifactId>spring-beans</artifactId> 
     <version>4.3.7.RELEASE</version> 
    </dependency> 
+0

這是一個相對較新的功能嗎?我只是在maven 3.0.5中試過,並且這是不允許的。 – Sam

+0

這適用於maven 3.5.0。我目前使用相同的。請嘗試 –

相關問題