【问题标题】:Maven dependency plugin trying to load non-existent class 'org.apache.maven.plugin.dependency.fromConfiguration.Artifact'Maven 依赖插件试图加载不存在的类 'org.apache.maven.plugin.dependency.fromConfiguration.Artifact'
【发布时间】:2023-03-30 20:22:01
【问题描述】:

我从我正在尝试构建的所有项目的 maven 依赖插件中收到一个奇怪的错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:copy (get-native-libs) on project tradestp-parent: Unable to parse configuration of mojo org.apache.maven.plugins:ma ven-dependency-plugin:2.8:copy: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Artifact' -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:copy (get-native-libs) on project tradestp-parent: Unable to parse c onfiguration of mojo org.apache.maven.plugins:maven-dependency-plugin:2.8:copy: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Artifact'
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:140)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:316)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:451)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:188)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:134)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.apache.maven.plugins:maven-dependency-plugin:2.8:copy: Error loading class 'org.apache.maven.  plugin.dependency.fromConfiguration.Artifact'
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:564)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:496)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:96)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195)
    ... 19 more
Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Artifact'
    at org.codehaus.plexus.component.configurator.converters.composite.CollectionConverter.fromConfiguration(CollectionConverter.java:174)
    at org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.configure(ComponentValueSetter.java:218)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:137)
    at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:56)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:534)
    ... 22 more
Caused by: java.lang.ClassNotFoundException: org.apache.maven.plugin.dependency.fromConfiguration.Artifact
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
    at org.codehaus.plexus.component.configurator.converters.composite.CollectionConverter.fromConfiguration(CollectionConverter.java:161)
    ... 26 more

奇怪的是,它正在寻找的类 org.apache.maven.plugin.dependency.fromConfiguration.Artifact 真的不存在而且从来没有。

以前有人见过这个问题吗?为什么maven依赖插件试图加载一个不存在的类?

【问题讨论】:

  • 这是什么版本的Maven?你能粘贴你的pom.xml吗?

标签: java maven


【解决方案1】:

不确定您是否仍然遇到此问题,但我刚刚遇到了同样的问题。

在我们的例子中,我们使用copy 目标来复制依赖项。 pom如下:

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-custom-artifact</id>
            <goals>
                <goal>copy</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifact>
                        <groupId>some.artifact.groupid</groupId>
                        <artifactId>some.artifact.artifactid</artifactId>
                    </artifact>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

我发现以下answer 指向另一个问题,其中陈述如下:

解包和复制目标必须复制一些核心解析代码。不幸的是,解析代码并不是真正以 API 方式可用的形式。正因为如此,这些目标不处理版本范围,也不直接从反应器解析工件(坦率地说,我从未实现它们,因为它破坏了太多现有的用例,是的核心解析代码太糟糕了)

更好的方法是使用这些目标的 xxx-dependencies 形式。

基于此我将我们的pom改成使用copy-depenencies目标,如下:

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-custom-artifact</id>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <includeArtifactIds>some.artifact.artifactid</includeArtifactIds>
            </configuration>
        </execution>
    </executions>
</plugin>

在此更改后,构建成功。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多