Maven 额外源通配符

Maven extra sources wildcards

我正在向我的 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>

那是因为一些开发者并没有在他们的工作下使用所有插件space,我不想在每个开发环境中修改我的pom.xml

不幸的是,该模式不起作用 - 至少在 Eclipse 中 - 因为文件夹未标记为 source。我做了一些研究,发现 Maven 使用 Ant patterns 但它不起作用。

能否请您告诉我是否可以在 <sources> 定义中使用该约定?

不,这不可能。

build-helper-maven-plugin:add-source 目标的 sources 属性是一个 File 数组,这意味着每个源都必须是一个 File,因此您不能使用蚂蚁路径模式。该插件将逐字添加文件 client/plugins/**/classes 作为源目录(因为它不存在,所以什么也不会发生)。这是我测试时的日志:

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

但问题是您为什么想要这样的东西。从你的问题中不清楚那些 "plugins" 来自哪里,但你不应该处于那种情况。每个插件可能应该是一个单独的模块 multi-module Maven project。这样,每个插件都会处理它的构建,您可以添加对这些模块的依赖。