首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种从原型中生成的后处理项目的方法?

是否有一种从原型中生成的后处理项目的方法?
EN

Stack Overflow用户
提问于 2013-10-24 11:35:17
回答 3查看 6K关注 0票数 6

假设我有一个原型,并从中生成一个项目。但是,我希望通过命令行将占位符的值传递给占位符,从而解析生成后生成的项目的属性文件中的占位符。

例如,具有以下命令行:

mvn原型:创建-Dhello=Hello! .-DarchetypeGroupId=.-DarchetypeArtifactId=. -DarchetypeVersion=1.0 -DgroupId=. -DartifactId=my-project -Dversion=1.0-快照-DgroupId=

假设原型包含app.properties (作为正在生成的项目的一部分),其内容如下:

greeting=${hello}

是否可以将${hello}替换为"Hello!“就在mvn原型生成项目之后:创建命令?

EN

回答 3

Stack Overflow用户

发布于 2017-03-02 19:34:47

是的这是可能的。来自高级使用指南中的maven原型:

如果用户想进一步定制生成的项目,可以在src/main/resources/META/中添加一个名为原型-postgenerate.groovy的groovy脚本。此脚本将在生成的原型的META文件夹中结束,并将在从该原型创建项目时执行。这个groovy脚本可以访问ArchetypeGenerationRequest对象,以及用户指定的所有System.getProperties()和所有原型生成属性。

票数 6
EN

Stack Overflow用户

发布于 2017-08-16 19:30:49

您可以在原型中定义其他属性,格式如下:https://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-metadata.html

例如:

定义文件: src\main\resources\META-INF\maven\archetype-metadata.xml

代码语言:javascript
复制
<archetype-descriptor 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" 
  name="modelant.metamodel.api">

<requiredProperties>
  <requiredProperty key="package"><defaultValue>${groupId}.${artifactId}</defaultValue></requiredProperty>

  <requiredProperty key="parentGroupId"><defaultValue>${groupId}</defaultValue></requiredProperty>
  <requiredProperty key="parentArtifactId"><defaultValue>${artifactId}</defaultValue></requiredProperty>
  <requiredProperty key="parentVersion"><defaultValue>${version}</defaultValue></requiredProperty>

  <requiredProperty key="metamodelUrl"/>
 </requiredProperties>
</archetype-descriptor>

在这里,您可以看到它定义了额外的所需属性,因此必须强制在对话框中提供这些属性,其中:

  • 有些属性可能没有价值-请参阅metamodelUrl
  • 有些属性可能具有默认值--作为静态文本--或者引用先前定义的标准属性的值: groupId、artifactId、version。
  • 一些操作可以覆盖标准属性--“包”属性的值。这里它被重新定义了。

请注意:

票数 0
EN

Stack Overflow用户

发布于 2013-12-03 07:29:22

我不确定我的理解是否正确。对于项目创建后的后处理,您可以使用param -Dgoals并调用您的自定义插件。

不确定您的需求,但是为什么您不能在项目生成过程中这样做呢?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19564804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档