2016-02-19 156 views
1

我正在爲我的Maven項目添加一些額外的源,直到現在所有工作都很好。我只想讓多餘的源選擇多一點更通用,因爲今天我有類似:Maven額外資源通配符

<source>client/plugins/plug1/classes</source> 
<source>client/plugins/plug2/classes</source> 
<source>client/plugins/plug3/classes</source> 
<source>client/plugins/plug4/classes</source> 
<source>client/plugins/plug5/classes</source> 
... 

我想要做的是這樣的:

<source>client/plugins/**/classes</source> 

這是因爲一些開發商沒有在他們的工作空間下的所有插件,我不想在每個開發環境中修改我的pom.xml

不幸的是,模式不起作用- 至少在Eclipse-,因爲文件夾沒有標記爲來源。我做了一些調查,發現Maven使用Ant patterns,但它不起作用。

請問如果可以在<sources>定義中使用該慣例嗎?

+1

在子模塊中劃分項目可能會更明智一些,如果不是所有的開發人員都擁有源代碼的每個部分,那麼每個開發人員的構建都會發生變化 – Ferrybig

+0

對不起:是!我正在使用它。我正在考慮創建模塊。這可能是解決方案,正如@Ferrybig所說的...... – MarcosTonina

回答

1

不,這是不可能的。

build-helper-maven-plugin:add-source目標的sources屬性是File數組,這意味着每個源必須是File,因此您不能使用Ant路徑模式。該插件將字面上將文件client/plugins/**/classes作爲源目錄添加(因爲它不存在,所以什麼也不會發生)。這是當我測試了它,我有日誌:

[INFO] --- build-helper-maven-plugin:1.10:add-source (add-source) @ test --- 
[INFO] Source directory: <omitted>\client\plugins\**\classes added. 

但還有的你爲什麼會想這樣的事情的問題。從你的問題不清楚這些「插件」來自哪裏,但你不應該處於這種情況。每個插件可能應該是一個multi-module Maven project的獨立模塊。這樣,每個插件將處理其構建,並且可以添加對這些模塊的依賴關係。