我在Windows 10上使用Maven 3.2.1和maven-archetype-plugin 3.0.1。
我将原型部署到我的存储库并在settings.xml
中定义了原型,但是找不到原型。
<repositories>
<repository>
<id>archetype</id>
<url>https://mydomain/repos</url>
</repository>
</repositories>
执行结果如下。
DOS> mvn archetype:generate \
-DarchetypeGroupId=my.sample \
-DarchetypeArtifactId=some-archetype \
-DarchetypeVersion=1.0.0 -DgroupId=sample \
-DartifactId=sampleartifact -Dversion=1.0.0
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) on project standalone-pom: The desired archetype does not exist (my.sample:some-archetype:1.0.0) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) on project standalone-pom: The desired archetype does not exist (my.sample:some-archetype:1.0.0)
但是,指定配置文件可以正常工作。
<profiles>
<profile>
<id>myprofile</id>
<repositories>
<repository>
<id>archetype</id>
<url>https://mydomain/repos</url>
</repository>
</repositories>
</profile>
</profiles>
只能通过添加“ -P myprofile”来实现预期效果。
DOS> mvn archetype:generate \
...
-P myprofile
我一直想确定存储库的优先级,但是每次都必须指定一个配置文件吗?
答案 0 :(得分:0)
它按预期工作,配置文件用于特定情况,适用于有时合适的设置。期望选择配置文件或定义默认配置文件是完全合理的。
最简单的方法是使用全局或您个人的setting.xml文件添加以下内容来激活特定配置文件。
<activeProfiles>
<activeProfile>profile-name</activeProfile>
</activeProfiles>
或者,您可以默认将任何配置文件标记为活动
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<profile>
<profiles>
或者,您可以将特定的配置文件标记为有效。
<profiles>
<profile>
<activation>
<property>
<name>env</name>
<value>dev</value>
</property>
</activation>
...
</profile>
</profiles>