我正在创建一个maven原型。在这里,我有一个原型项目,当用户调用以下命令时,它会为用户创建:
MVN原型:生成-DArchetypeGroupId=xxx-DArchetypeArtifactId=Archtype-yyyy-DArchetypeVersion=1.1.0-S5-SNAPSHOT-DgroupId=zzz-DartifactId=pro11
在prototype pom中,我想使用我在上面的命令中指定的“原型版本”属性。像这样:
<dependencies>
<dependency>
<groupId>mmmm</groupId>
<artifactId>nte</artifactId>
<version>${archetypeVersion}</version>
</dependency>
这对我不起作用。创建项目时,它仍然在生成的pom中显示依赖项代码段,与上面发布的完全一样。它不会取代它。
这可能吗?专家允许这样做吗?如果是,我该怎么做?
我发现的最简单的方法是将它作为默认变量添加到您的< code > META-INF/maven/architect-metadata . XML 中,如下所示:
<archetype-descriptor
xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd"
name="archetypeVersionExample">
<requiredProperties>
...
<requiredProperty key="archetypeVersion">
<defaultValue>${version}</defaultValue>
</requiredProperty>
</requiredProperties>
...
</archetype-descriptor>
不需要额外的插件或用户条目。
我认为做到这一点的简单方法是使用maven-替换器-插件。您必须将下一节添加到原型 /pom.xml:
<build>
...
<plugins>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals><goal>replace</goal></goals>
</execution>
</executions>
<configuration>
<file>target/classes/archetype-resources/pom.xml</file>
<replacements>
<replacement>
<token>\$\{archetypeVersion\}</token>
<value>${version}</value>
</replacement>
</replacements>
</configuration>
</plugin>
</plugins>
...
<build>
即此代码将“${ArchetypeVersion}”子字符串替换为当前版本的原型。您的“/src/main/Resources/Archetype-Resources/pom.xml”包含下一个依赖项:
<dependency>
<groupId>xxxx</groupId>
<artifactId>yyyy</artifactId>
<version>${archetypeVersion}</version>
</dependency>
执行“mvn install”命令后,生成的文件“/target/classes/architect-resources/POM . XML”将包含原型版本号。现在你已经安装了原型,可以使用它了:“mvn原型:生成…”。
在创建新的Maven时 无法计算生成计划:插件组织。阿帕奇。专家plugins:maven resources plugin:2.5或其依赖项之一无法解析:无法读取组织的工件描述符。阿帕奇。专家插件:maven资源插件:jar:2.5插件组织。阿帕奇。专家plugins:maven resources plugin:2.5或其依赖项之一无法解析:无法读取组织的工件描述符。阿帕奇。专家插件:mave
我使用的是Maven3.0.3,我有一个多模块Maven项目,我想用它来创建原型。结构如下: 最初的结构是: 运行cmd后, 在文件夹中生成的文件夹结构与上面相同(即),而不像 不知道我能做些什么让它工作吗?
我试图从一个现有的多模块maven项目中创建一个原型。为此,我将目录更改为根目录(root pom.xml在其中),并发出“mvn archetype:create-from-project”。生成没有完成,我得到以下错误: 使用-e和-x标志再次运行,我可以看到以下堆栈跟踪: 我检查了maven-archetype-plugin文档,没有找到对charsetName属性的任何引用。所以,我有点不
提前致谢
安装和生成后,目录名或artifactid中不使用moduleName值,则重新生成的值为 该值在项目的一些其他文件上被正确替换,所以我猜没有拼写问题。 我见过很多类似的东西,但都是使用rootArtifactId,事实上,如果我使用rootArtifactId(作为名称的开始部分),它就会像预期的那样工作。 找不到类似的问题,有什么想法为什么它不能工作,或如何使它工作?
问题内容: 我正在创建自己的Maven原型,这是我使用的项目的通用模板。 在该模板中,我有许多“ exec-maven-plugin”块,实际上每个项目都不同,这意味着在一个项目中,我可能有2个“ exec-maven- plugin”块,而在另一个项目中,我可能有3个或更多。 我希望当他使用我创建的原型创建项目时,由用户来驱动。例如,将要求用户提供许多主要类别,并根据他选择输入的主要类别,应创建