【问题标题】:maven archetype plugin not applying all propertiesMaven原型插件未应用所有属性
【发布时间】:2012-10-25 09:12:30
【问题描述】:

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

原型看起来like this

运行this command 会导致生成this pom.xml。它应用了属性${package}${domainInterface} 的字段,但不应用groupIdartifactIdversionname 的字段。

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

【问题讨论】:

    标签: java maven archetypes


    【解决方案1】:

    我尝试通过克隆 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>
    

    【讨论】:

    • 所以是原型 pom 中的父引用导致了这种奇怪的行为?
    • 不确定,但我不想构建 everything 所以我只是安装了原型。不完全确定为什么会出现问题。您是否查看过本地 Maven 存储库中的原型文件?
    • 你试过我回答中的步骤了吗?
    • 是的,我只是查看了我的 maven 存储库中的 jar 文件,并注意到在 src/main/resources/archetype-resources/pom.xml 中(我相信)${groupId}、@987654326 的字段@、${version}${name} 缺失,即它们具有静态值。我从 repo 中删除了整个 openengsb 文件夹,我目前正在再次安装它,看看是否以某种方式修复了它
    • 这是org.openengsb.tooling.archetypes.domain-3.0.0-SNAPSHOT.jar 文件中的archetype-resources/pom.xml 的样子:link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2016-03-29
    • 2017-09-01
    相关资源
    最近更新 更多