英文:
Getting error when executing the Java project with Quarkus Maven plugin (Java jdk-17.jd version and Maven 3.9.0
问题
我在使用Quarkus Maven插件执行项目时遇到以下错误。我执行的脚本如下:
mvn -U io.quarkus:quarkus-maven-plugin:create \
-DprojectGroupId=org.test.quarkus.microservices \
-DprojectArtifactId=rest-number \
-DclassName="org.test.quarkus.microservices.number.NumberResource" \
-Dpath="/api/numbers" \
-Dextensions="resteasy-jsonb, smallrye-openapi"
错误信息如下:
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:3.0.0.Alpha4:create (default-cli) on project standalone-pom: Execution default-cli of goal io.quarkus:quarkus-maven-plugin:3.0.0.Alpha4:create failed: A required class was missing while executing io.quarkus:quarkus-maven-plugin:3.0.0.Alpha4:create: org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory
英文:
I' m getting the below error when I execute a project in using Quarkus maven plugin. The script executed by me was
mvn -U io.quarkus:quarkus-maven-plugin:create \
-DprojectGroupId=org.test.quarkus.microservices \
-DprojectArtifactId=rest-number \
-DclassName="org.test.quarkus.microservices.number.NumberResource" \
-Dpath="/api/numbers" \
-Dextensions="resteasy-jsonb, smallrye-openapi"
> [ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:3.0.0.Alpha4:create (default-cli) on project standalone-pom: Execution default-cli of goal io.quarkus:quarkus-maven-plugin:3.0.0.Alpha4:create failed: A required class was missing while executing io.quarkus:quarkus-maven-plugin:3.0.0.Alpha4:create: org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory
答案1
得分: 2
问题
Maven 3.9.0 使用org.apache.maven.resolver:maven-resolver-connector-basic:1.9.4
作为一个传递库。
create
目标可能引用了org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory
。然而该类存在,运行该目标会抛出java.lang.ClassNotFoundException
。
经过一些调查,似乎只有create
目标受到影响。
解决方法
如果可能的话,降级 Maven 版本。
Maven 发行版归档可在此处找到:https://archive.apache.org/dist/maven/maven-3/
我已经测试了 3.8.7 和 3.8.4,它们都正常工作。
备选解决方案
另外,Quarkus 提供了一个命令行界面。https://quarkus.io/guides/cli-tooling
我没有测试过。
防护解决方案
这里提供了一个出色的交互式配置页面:https://code.quarkus.io/
正如我所提到的,生成的项目将与 Maven 3.9.0 兼容。
2023年4月更新
已经解决了问题,并发布在 Quarkus 3.x 分支中(特别是 Quarkus 3.0.0.CR1)。不幸的是,没有承诺将此错误修复合并到 Quarkus 2.x 中。
英文:
The problem
Maven 3.9.0 using
org.apache.maven.resolver:maven-resolver-connector-basic:1.9.4
as a transitive library.
The create
goal probably referenced to
org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory
. Howerver that class exists, running the goal throws a java.lang.ClassNotFoundException
.
After some investigation it seems only create
goal affected.
Workaround
Downgrade Maven version if it is possible.
Maven release archive is available here: https://archive.apache.org/dist/maven/maven-3/
I've tested with 3.8.7 and 3.8.4, and both of them work properly.
Alternate solution
Alternatively Quarkus has a command line interface. https://quarkus.io/guides/cli-tooling
I didn't tested.
Bulletproof solution
An awesome interactive configurator page available here: https://code.quarkus.io/
As I mentioned the generated project will work with Maven 3.9.0
Update on Apr, 2023
The reported issue have already been resolved and released in Quarkus 3.x stream (especially Quarkus 3.0.0.CR1) Unfortunately there's no commitment to backport this bugfix into Quarkus 2.x.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论