Maven原型插件不应用所有属性



在我正在从事的项目中,我们还使用自定义原型,以使生成新的域/连接器更容易。在尝试编写自动测试以验证这些原型后,我遇到了这些原型产生的问题。由于某些原因,并非所有使用-D标志或使用交互式模式提供的属性都应用于生成的pom.xml

原型看起来像这样。

运行此命令会产生此pom.xml。它应用了属性${package}${domainInterface}的字段,而不是groupIdartifactIdversionname的字段。

所以我的问题是,我在做错了什么,原型是损坏的还是Maven原型插件中的错误?

我尝试通过克隆github存储库,在本地安装原型然后运行命令来重现此功能。

git clone https://github.com/openengsb/openengsb-framework.git
cd openengsb-framework/tooling/archetypes/domain
vim pom.xml

删除了父pom参考,然后:

mvn clean install
mvn archetype:generate -DarchetypeGroupId=org.openengsb.tooling.archetypes -DarchetypeArtifactId=org.openengsb.tooling.archetypes.domain -DarchetypeVersion=3.0.0-SNAPSHOT -DgroupId=org.openengsb.domain -DartifactId=org.openengsb.domain.foodomain -Dversion=1.0.0-SNAPSHOT -Dname=FooDomain -DopenengsbVersion=3.0.0-SNAPSHOT -Dpackage=org.openengsb.domain.foodomain -DdomainInterface=FooDomain -DdomainName=foodomain -DinteractiveMode=false
cd org.openengsb.domain.foodomain/
cat pom.xml

呈现此pom.xml(仅在此粘贴的一部分):

  <properties>
    <bundle.symbolicName>org.openengsb.domain.foodomain</bundle.symbolicName>
    <bundle.namespace>org.openengsb.domain.foodomain</bundle.namespace>
    <domain.name>FooDomain</domain.name>
  </properties>
  <groupId>org.openengsb.domain</groupId>
  <artifactId>org.openengsb.domain.foodomain</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <name>FooDomain</name>

最新更新