2016-02-19 158 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的独立模块。这样,每个插件将处理其构建,并且可以添加对这些模块的依赖关系。