maven - 所需的原型不存在
问题描述
当按照https://confluence.sakaiproject.org/display/BOOT/Sakai+Spring+MVC+Maven+Archetype的说明调用 Maven 生成原型时,Maven 抱怨原型不存在,即使文件位于给定的原型库:https ://source.sakaiproject.org/maven2/org/sakaiproject/maven-archetype/sakai-spring-maven-archetype/1.2/sakai-spring-maven-archetype-1.2.pom 。
Maven版本是:
>mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
这就是发生的事情 - 看起来-DarchetypeRepository
参数被忽略了:
> mvn archetype:generate -DarchetypeGroupId=org.sakaiproject.maven-archetype
-DarchetypeArtifactId=sakai-spring-maven-archetype
-DarchetypeVersion=1.2
-DarchetypeRepository=https://source.sakaiproject.org/maven2
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[WARNING] Archetype not found in any catalog. Falling back to central repository.
[WARNING] Add a repository with id 'archetype' in your settings.xml if archetype's repository is elsewhere.
[WARNING] The POM for org.sakaiproject.maven-archetype:sakai-spring-maven-archetype:jar:1.2 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.395 s
[INFO] Finished at: 2020-01-11T12:24:20+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate (default-cli) on project standalone-pom: The desired archetype does not exist (org.sakaiproject.maven-archetype:sakai-spring-maven-archetype:1.2) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
解决方案
事实证明,Maven 3 改变了原型存储库的集成方式。该-DarchetypeRepository
参数不再存在。相反,需要将原型存储库添加到settings.xml
:
<profiles>
<profile>
<!-- the profile id is arbitrary -->
<id>sakai</id>
<repositories>
<repository>
<!-- the repository id has to be named: archetype -->
<id>archetype</id>
<name>Repository for Sakai archetypes</name>
<url>https://source.sakaiproject.org/maven2/</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<!-- The profile needs to be added to activeProfiles in order to be taken into account -->
<activeProfiles>
<activeProfile>sakai</activeProfile>
</activeProfiles>
推荐阅读
- python - Generate weakly connected components as new graph in Networkx
- javascript - 客户端页面和服务工作者之间的双向通信
- elasticsearch - 如何使用 Spring Data Elasticsearch 正确格式化日期
- powershell - 如何在 powershell 中使用新的 .exe 执行命令
- php - 无法绑定地址 [10048]:每个套接字地址(协议/网络地址/端口)通常只允许使用一次
- javascript - Javascript时间计数器向后运行
- java - 设置列表视图项的背景颜色
- asp.net - 如何知道 IIS 为每个工作进程创建了多少线程
- vue.js - 如何在 vue 中绑定“v-model”属性?
- javascript - 在模板中访问“this”