2015-05-01 1 views
-1

Я пытаюсь очистить, собрать и упаковать мой проект, но я получаю эту ошибку:Как правильно выполнить «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

ли вам действительно нужно «плагин», чтобы очистить? Я думаю, что 'mvn clean' будет делать трюк ... и для вашей цели, выполняя (на уровне корня проекта)' mvn clean package' или 'mvn clean verify' достаточно –

+0

Это то, что я пытался сделать, изначально. mvn clean package дает ту же ошибку, что и mvn clean verify. –

+0

stacktrace - это потому, что 'maven-clean-plugin'; можете ли вы прокомментировать эту часть и попробовать «mvn clean»? –

ответ

1

Похоже версии чистого плагина вы явно настраиваемой отличается к отгружаются с 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 package.

Если вы настроены на использование плагина вы должны также попытаться установки свойства вручную в конфигурации, как показано ниже:

<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> 
+0

Это все еще не работает :(Я получаю ту же стек, что и я, комментирую «плагин» и запускаю «mvn clean» или добавляю параметр ''. –

+0

Можете ли вы поделиться кодом в GitHub или чем-то похожим ?Вы не должны получать одну и ту же трассировку стека, поскольку она связана с тем, что у вас нет (при условии, что вы прокомментировали свою декларацию '' для 'maven-clean-plugin') –

+0

Я не могу поделиться ею, это коммерческое программное обеспечение. Это хороший способ заставить себя уволить. ;) Я могу сказать вам это, хотя, когда я чищу от затмения, он делает это без проблем. это просто из командной строки или maven-invoker из Apache, и все остальное работает, когда я не включаю плагин. Это чистое, что сломано. –

1

@ ɐuıɥɔɐɯ является правильным.

Я бы также попытался удалить конфигурацию плагинов автоматической очистки в вашем pom.xml, так как это может быть больше работы, чтобы понять, почему это вызывает проблемы, чем это стоит. На данный момент, я бы просто запустить следующую команду в корневой папке вашего проекта:

mvn clean package 

Это должно работать ваши цели, перечисленные в вашем pom.xml, и очистить свой подкаталог «целевой», заменив его с новейший код.

Для получения дополнительной информации см. http://www.mkyong.com/maven/how-to-clean-project-with-maven/.

+0

Это все еще не сработало. Я получаю ту же стек. –

+0

Чистый - это жизненный цикл, который называется. Плагин maven-clean-плагин по умолчанию привязан к этому жизненному циклу (чистый), что означает, что он выполнен. И нет никакого инструмента, встроенного для «чистого пакета», это только жизненные циклы, которые выполняются. – khmarbaise

+0

Спасибо за разъяснение, что для меня и для всех остальных. Я отредактировал свое сообщение соответственно. – CtheGood