2016-02-19 4 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 в каждой среде dev.

К сожалению, эта модель не работает -при минимум в 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. Таким образом, каждый плагин будет обрабатывать свою сборку, и вы можете добавить зависимость от этих модулей.