Maven 原型不替换模块目录名称的属性

Maven archetype not substituting properties for module directory name

我创建了一个多模块项目的原型,我的目的是用所需的 属性 __implementation__ 替换目录名称。结果是 __rootArtifactId__ 被替换,但 __impelementation__ 没有被替换。

原型-metadata.xml:

<module id="${rootArtifactId}-${implementation}-impl" dir="__rootArtifactId__-__implementation__-impl" name="${rootArtifactId}-${implementation}-impl">
  <fileSets>
    <fileSet filtered="true" packaged="true" encoding="UTF-8">
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.java</include>
      </includes>
    </fileSet>
    <fileSet filtered="true" encoding="UTF-8">
      <directory></directory>
      <includes>
        <include>pom.xml</include>
      </includes>
    </fileSet>
  </fileSets>
</module>

属性:

artifactId=basic
implementation=foo

结果目录: basic-__implementationName__-impl

替换发生在:pom.xml 和 *.java,但目录有问题

有没有办法让原型使用目录名称的属性?

针对这个问题,我做了以下操作:

  1. 通过git

    克隆了 maven-archetype 源代码
    git clone --branch maven-archetype-2.4 https://git-wip-us.apache.org/repos/asf/maven-archetype.git
    
  2. 执行了这里提到的修改ARCHETYPE-455

  3. 在 maven-archetype 项目上执行了 maven 安装(一些单元测试不起作用)

    mvn install -DskipTests
    

之后,目录名被正确替换。