maven - java.lang.NoSuchMethodError on标签
问题描述
我正在尝试使用 maven 调用 ant build 并尝试从 ant 目标调用以下内容
<artifact:dependencies pathId="war.lib.path" useScope="runtime">
<pom file="pom.xml" />
</artifact:dependencies>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<ant antfile="${basedir}/build/build.xml">
<target name="build" />
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
这给了我以下错误:
Caused by: java.lang.NoSuchMethodError: org.apache.maven.settings.RuntimeInfo.<init>(Lorg/apache/maven/settings/Settings;)V
at org.apache.maven.artifact.ant.AbstractArtifactTask.readSettings(AbstractArtifactTask.java:382)
at org.apache.maven.artifact.ant.AbstractArtifactTask.loadSettings(AbstractArtifactTask.java:311)
at org.apache.maven.artifact.ant.AbstractArtifactTask.initSettings(AbstractArtifactTask.java:278)
at org.apache.maven.artifact.ant.AbstractArtifactTask.execute(AbstractArtifactTask.java:750)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
... 66 more
你能告诉我有什么问题吗编辑1:The. 使用的 Maven 版本是 3.1.1 并尝试使用 ant 插件 1.8 和 3.0.0 仍然得到相同的错误。这是 pom.xml 中使用的插件
解决方案
看起来您正在使用Maven Ant Tasks 组件中的依赖项任务,该组件至少从 2014 年 5 月起已停用且不再维护。
您应该降级 Maven 的版本,我假设它是基于组件最后更新日期的版本 2。
或者,按照 Maven Ant Tasks的建议,将您的 Ant 构建脚本迁移到Maven Artifact Resolver Ant Tasks。
推荐阅读
- ruby - Nokogiri 在 Ubuntu 20.04 上安装失败
- c# - 如何在 Unity 中循环命令指定的时间
- python - 尝试使用 STS 通过 SQS 连接 Celery 时出错
- javascript - 如何打破 Reactstrap 上的图像行序列?
- r - R中ggplot中的标签不正确
- android - `R.string.cast_casting_to_device`在哪个包中
- java - 为什么我在 java 中预期的字符串输出之前在输出中得到一个空行?另外,当我使用 sc.nextLine() 时,它会出错,为什么?
- python - 将数据框中的日期更改为 Python 中的特定格式
- java - 在 Swing 中捕获 WM_SETCURSOR
- sql - 由于无法找到的依赖关系,无法删除视图