2012-10-10 76 views
4

鑑於以下依賴列入一個Maven的組裝XML ...Maven的大會包括過濾

<dependencySet> 
    <includes> 
    <include>com.company.product:library:jar:*:*</include> 
    </includes> 

...爲什麼上面的過濾器不包括庫:罐子不具有分類?

[INFO] Reading assembly descriptor: assembly/release.xml 
[WARNING] The following patterns were never triggered in this artifact inclusion filter: 
o 'com.company.product:library:jar:*:*' 

原因在我的模式的附加通配符的是,我也有我的構建與分類「QA」所有庫的配置文件。當我激活該配置文件時,一切正常,但在默認配置文件(構建不帶分類器的庫)下失敗。

如果我的過濾器更改爲:

<include>com.company.product:library*</include> 

然後Maven構建居然失敗,此錯誤:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly- 
plugin:2.3:single (make-assembly) on project java-package: Failed to create 
assembly: Error adding file 'com.company.product:library:jar:1.0.0-SNAPSHOT' 
to archive: C:\Subversion\JavaProj\library\target\classes isn't a file. -> [Help 1] 

有人能提出一個模式,其中將包括罐有或沒有一分類?

回答

0

我認爲com.company.product:library*失敗,因爲你需要冒號:com.company.product:library:*(見this chapter from Maven: The Complete Reference)。

但是,我建議爲您的兩個配置文件(qa和non-qa)創建不同的component descriptors以用於這兩個構建配置文件。一個列出了具有分類器的依賴關係,一個列出了沒有分類器的依賴關係。

當然,XML文件和一些冗餘內容會氾濫成災,但它會解決您的問題。

+0

我曾試圖過濾器上面還 - 它應該工作,但我得到了同樣的錯誤,它似乎無法匹配與分類罐子。感謝組件描述符的建議,但我會研究它。 – RCross

7

在pom.xml中檢查您的<dependencies>:您在assembly-xml中引用的依賴關係嗎?

0

面對同樣的問題。不知道爲什麼,但maven-assembly-plugin確實包括與compile範圍是默認的依賴。使其成爲provided修復組裝。

E.g.檢查您的com.company.product:library依賴關係,並嘗試將<scope>provided</scope>添加到它們。然後,而不是*嘗試列出所有圖書館人力。 (你也可以與他們的一個嘗試,以檢驗溶液)

+1

'提供'不能解決我的問題 – mirec