Maven - archetypeCatalog is not supported anymore 及 The desired archetype does not exist

Maven - archetypeCatalog is not supported anymore 及 The desired archetype does not exist

概述

今天在参考Flink官网使用Maven构建Flink工程:

mvn archetype:generate \
    -DarchetypeGroupId=org.apache.flink \
    -DarchetypeArtifactId=flink-walkthrough-datastream-scala \
    -DarchetypeCatalog=https://repository.apache.org/content/repositories/snapshots/ \
    -DarchetypeVersion=1.11-SNAPSHOT \
    -DgroupId=frauddetection \
    -DartifactId=frauddetection \
    -Dversion=0.1 \
    -Dpackage=spendreport \
    -DinteractiveMode=false

报错类似如下:
archetypeCatalog is not supported anymore

主要是因为Maven3.0以后,不能直接使用-DarchetypeCatalog了。

如果直接去掉-DarchetypeCatalog,而不做其他更改,会报错类似如下:
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 (org.apache.flink:flink-walkthrough-datastream-scala:1.11-SNAPSHOT) -> [Help 1]

问题解决

参考archetype-repository,在mvn命令默认使用的settings.xml文件(这个文件路径可以通过在执行mvn命令时加入-x选项观察Reading global settings from xxx/settings.xmlReading user settings from yyy/settings.xml)中加入如下内容:

<profiles>
	<profile>
	  <id>archetype</id>
	  <repositories>
	    <repository>
	      <id>archetype</id><!-- id expected by maven-archetype-plugin to avoid fetching from everywhere -->
	      <url>https://repository.apache.org/content/repositories/snapshots</url>
	      <releases>
	        <enabled>true</enabled>
	        <checksumPolicy>fail</checksumPolicy>
	      </releases>
	      <snapshots>
	        <enabled>true</enabled>
	        <checksumPolicy>warn</checksumPolicy>
	      </snapshots>
	    </repository>
	  </repositories>
	</profile>
</profiles>
<activeProfiles>
  <activeProfile>archetype</activeProfile>
</activeProfiles>

再使用如下命令可成功构建名为flink-demo2的Flink工程:

mvn archetype:generate \
    -DarchetypeGroupId=org.apache.flink \
    -DarchetypeArtifactId=flink-walkthrough-datastream-scala \
    -DarchetypeVersion=1.11-SNAPSHOT \
    -DgroupId=flink-demo3 \
    -DartifactId=flink-demo3-test \
    -Dversion=0.1 \
    -Dpackage=spendreport \
    -DinteractiveMode=false

如果很慢的话,可以把http://repo1.maven.org/maven2/archetype-catalog.xml下载到本地仓库根目录,比如~/.m2下,并在执行mvn archetype命令时加上-DarchetypeCatalog=internal

参考文档

好文推荐

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值