1

我正在向我的 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 中 -因为文件夹未标记为source。我做了一些研究,发现 Maven 使用了Ant 模式,但它不起作用。

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

4

1 回答 1

2

不,这是不可能的。

目标的sources属性build-helper-maven-plugin:add-source是一个File数组,这意味着每个源都必须是 a 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.

但问题是你为什么想要这样的东西。从您的问题中不清楚这些“插件”来自哪里,但您不应该处于这种情况。每个插件可能应该是多模块 Maven 项目的一个单独模块。这样,每个插件都将处理其构建,您可以添加对这些模块的依赖项。

于 2016-02-19T20:49:16.777 回答