【问题标题】:Maven extra sources wildcardsMaven 额外来源通配符
【发布时间】:2016-06-01 13:39:08
【问题描述】:

我正在向我的 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 patterns,但它不起作用。

您能否告诉我是否可以在&lt;sources&gt; 定义中使用该约定?

【问题讨论】:

  • 将项目划分为子模块可能更明智,如果不是所有开发人员都拥有源代码的每个部分,那么您将获得每个开发人员更改的构建
  • 对不起:是的!我正在使用它。我正在考虑创建模块。正如@Ferrybig 所说,这可能是解决方案......

标签: java maven build-helper-maven-plugin


【解决方案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 的一个单独模块。这样,每个插件都会处理其构建,您可以添加对这些模块的依赖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 2018-08-23
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多