首页 > 解决方案 > 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 中使用的插件

标签: mavenbuildant

解决方案


看起来您正在使用Maven Ant Tasks 组件中的依赖项任务,该组件至少从 2014 年 5 月起已停用且不再维护。

您应该降级 Maven 的版本,我假设它是基于组件最后更新日期的版本 2。

或者,按照 Maven Ant Tasks的建议,将您的 Ant 构建脚本迁移到Maven Artifact Resolver Ant Tasks


推荐阅读