我正在向我的 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>
中使用该约定吗?定义?
最佳答案
不,这是不可能的。
sources
build-helper-maven-plugin:add-source
目标的属性是一个 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 的单独模块。这样,每个插件都将处理其构建,并且您可以添加对这些模块的依赖项。
关于java - Maven 额外源通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35514498/