java.lang.NoSuchMethodError 在 <artifact:dependencies> 标签上
java.lang.NoSuchMethodError on <artifact:dependencies> tag
我正在尝试使用 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:
这。使用的 Maven 版本是 3.1.1 并尝试使用 ant 插件 1.8 和 3.0.0 仍然出现相同的错误。
这是 pom.xml
中使用的插件
看起来您正在使用 dependencies task from the Maven Ant Tasks component,它至少从 2014 年 5 月起已停用且不再维护。
您应该降级 Maven 的版本,根据组件的最后更新日期,我假设它是版本 2。
或者将您的 Ant 构建脚本迁移到 Maven Artifact Resolver Ant Tasks , as recommended at Maven Ant Tasks。
我正在尝试使用 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: 这。使用的 Maven 版本是 3.1.1 并尝试使用 ant 插件 1.8 和 3.0.0 仍然出现相同的错误。 这是 pom.xml
中使用的插件看起来您正在使用 dependencies task from the Maven Ant Tasks component,它至少从 2014 年 5 月起已停用且不再维护。
您应该降级 Maven 的版本,根据组件的最后更新日期,我假设它是版本 2。
或者将您的 Ant 构建脚本迁移到 Maven Artifact Resolver Ant Tasks , as recommended at Maven Ant Tasks。