Как правильно выполнить "mvn clean" внутри проекта?
Я пытаюсь очистить, собрать и упаковать свой проект, но я получаю эту ошибку:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.6.1:clean (auto-clean) on project Presentation: Unable to parse configuration of mojo org.apache.maven.plugins:maven-clean-plugin:2.6.1:clean for parameter retryOnError: Cannot find 'retryOnError' in class org.apache.maven.plugin.clean.CleanMojo -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.6.1:clean (auto-clean) on project Presentation: Unable to parse configuration of mojo org.apache.maven.plugins:maven-clean-plugin:2.6.1:clean for parameter retryOnError: Cannot find 'retryOnError' in class org.apache.maven.plugin.clean.CleanMojo
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:220)
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:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
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:483)
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)
Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.apache.maven.plugins:maven-clean-plugin:2.6.1:clean for parameter retryOnError: Cannot find 'retryOnError' in class org.apache.maven.plugin.clean.CleanMojo
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:605)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:537)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:120)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 19 more
Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Cannot find 'retryOnError' in class org.apache.maven.plugin.clean.CleanMojo
at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:252)
at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101)
at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:32)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:575)
... 22 more
Я пытался выяснить это для себя некоторое время сейчас. У меня есть проект, настроенный на автоматическую очистку, и именно так Apache дал указание сделать это в файле (ах) pom, но я также включу это.
<project>
<build>
...
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.6.1</version>
<configuration>
<failOnError>false</failOnError>
</configuration>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
...
</build>
<project>
Я потерян здесь. Очевидно, что это как-то связано с retryOnError, но я сам не добавил это. Где я могу найти это?
Кроме того, я использую Maven 3.2.5, если это помогает.
2 ответа
Похоже, что версия чистого плагина, который вы явно настраиваете, отличается от версии, поставляемой с maven (или похожим несоответствием в свойствах по умолчанию)
Поскольку комментарии выше предполагают, что я удалил бы весь раздел:
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.6.1</version>
<configuration>
<failOnError>false</failOnError>
</configuration>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
и затем запустите пакет mvn clean / mvn clean.
Если вы используете плагин, вам также следует попробовать установить свойство вручную в конфигурации, как показано ниже:
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.6.1</version>
<configuration>
<failOnError>false</failOnError>
<retryOnError>true</retryOnError>
</configuration>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
@ɐuıɥɔɐɯ прав.
Я также попытался бы удалить конфигурацию плагина автоочистки в вашем файле pom.xml, так как может потребоваться больше усилий, чтобы выяснить, почему это вызывает проблемы, чем оно того стоит. Сейчас я просто запустил бы следующую команду в корневой папке вашего проекта:
mvn clean package
Это должно выполнить ваши цели, перечисленные в вашем pom.xml, и очистить ваш "целевой" подкаталог, заменив его самым новым кодом.
См. http://www.mkyong.com/maven/how-to-clean-project-with-maven/ для получения дополнительной информации.