maven - 为什么 build-helper-maven-plugin 会抛出异常:'Cannot find default setter in class org.apache.maven.model.Resource'?
问题描述
这是我在 pom.xml 中的 build-helper-maven-plugin 配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>add-extra-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<directory>src/main/python</directory>
<!--<resource>src/main/python</resource>-->
</resources>
</configuration>
</execution>
</executions>
</plugin>
当我运行 mvn install 时,出现以下错误:
[ERROR] Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:1.12:add-resource (add-extra-resources) on project spookystuff: Unable to parse configuration of mojo org.codehaus.mojo:build-helper-maven-plugin:1.12:add-resource for parameter directory: Cannot find default setter in class org.apache.maven.model.Resource -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:1.12:add-resource (add-extra-resources) on project spookystuff: Unable to parse configuration of mojo org.codehaus.mojo:build-helper-maven-plugin:1.12:add-resource for parameter directory: Cannot find default setter in class org.apache.maven.model.Resource
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.codehaus.mojo:build-helper-maven-plugin:1.12:add-resource for parameter directory: Cannot find default setter in class org.apache.maven.model.Resource
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:662)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:594)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 21 more
Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Cannot find default setter in class org.apache.maven.model.Resource
at org.eclipse.sisu.plexus.CompositeBeanHelper.setDefault(CompositeBeanHelper.java:95)
at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration(ObjectWithFieldsConverter.java:61)
at org.codehaus.plexus.component.configurator.converters.composite.AbstractCollectionConverter.fromChildren(AbstractCollectionConverter.java:54)
at org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter.fromConfiguration(ArrayConverter.java:52)
at org.eclipse.sisu.plexus.CompositeBeanHelper.convertProperty(CompositeBeanHelper.java:273)
at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:210)
at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101)
at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:34)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:632)
... 24 more
这是什么意思,我该如何解决?
解决方案
看看文档。
正确的结构是:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>add-extra-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/python</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
您不能直接设置资源。所以这就是什么Cannot find default setter in class org.apache.maven.model.Resource
意思。
推荐阅读
- apache-kafka - MSK Kafka:请解释为什么 ZookeeperConnectString 列出了多个端点以及我应该如何使用它们
- sql - 包含“。”的自动创建的 bigquery 字段名称存在问题。
- c++ - 清除输入缓冲区
- r - 如何在包含两列的 Rmarkdown pdf 中插入全宽表格?
- javascript - 干杯。处理另一个函数的错误后无法在 TRY 体内获取数据
- android - Microsoft Teams - 如何从 Android Intent 启动 MS Teams
- c++ - 如何将 cmake 与 boost asio 一起使用?
- javascript - 单击按钮时从 React.js 函数返回图像
- typescript - 我可以从数组中提取类型吗?
- r - 按 data.table 中的组将值拖动到前导 NA 单元格(滚动 NA 替换)