2009-09-09 5 views
13

Я пытаюсь начать изменение существующего приложения с помощью Eclipse. На самом деле у меня было работать раньше, но я удалил проект, и теперь с «МВН затмение: затмение» Я получаю следующее:Настройка проекта для eclipse с использованием maven

[INFO] Resource directory's path matches an existing source directory. Resources will be merged with the source directory src/main/resources 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Request to merge when 'filtering' is not identical. Original=resource src/main/resources: output=target/classes, include=[atlassian-plugin.xml], exclude=[**/*.java], test=false, filtering=true, 
merging with=resource src/main/resources: output=target/classes, include=[], exclude=[atlassian-plugin.xml|**/*.java], test=false, filtering=false 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
org.apache.maven.lifecycle.LifecycleExecutionException: Request to merge when 'filtering' is not identical. Original=resource src/main/resources: output=target/classes, include=[atlassian-plugin.xml], 
exclude=[**/*.java], test=false, filtering=true, merging with=resource src/main/resources: output=target/classes, include=[], exclude=[atlassian-plugin.xml|**/*.java], test=false, filtering=false 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:512) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:482) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:287) 
     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.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
     at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
     at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
     at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Request to merge when 'filtering' is not identical. Original=resource src/main/resources: output=target/classes, include=[atlassian-plugin.xm 
l], exclude=[**/*.java], test=false, filtering=true, merging with=resource src/main/resources: output=target/classes, include=[], exclude=[atlassian-plugin.xml|**/*.java], test=false, filtering=false 
     at org.apache.maven.plugin.eclipse.EclipseSourceDir.merge(EclipseSourceDir.java:302) 
     at org.apache.maven.plugin.eclipse.EclipsePlugin.extractResourceDirs(EclipsePlugin.java:1605) 
     at org.apache.maven.plugin.eclipse.EclipsePlugin.buildDirectoryList(EclipsePlugin.java:1490) 
     at org.apache.maven.plugin.eclipse.EclipsePlugin.createEclipseWriterConfig(EclipsePlugin.java:1180) 
     at org.apache.maven.plugin.eclipse.EclipsePlugin.writeConfiguration(EclipsePlugin.java:1043) 
     at org.apache.maven.plugin.ide.AbstractIdeSupportMojo.execute(AbstractIdeSupportMojo.java:511) 
     at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558) 
     ... 16 more 

ответ

31

Будет ли это лучше?

mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse 

Это говорит Maven использовать версию 2.6 (который до сих пор работает), а не по умолчанию 2.7 (который не делает).
Вам нужно будет каждый раз вызывать такую ​​команду, так что это немного неудобно, в то время как изменения файлов выше должны приводить к одноразовому исправлению, но таким образом вы не рискуете случайно сломать что-то еще, t нужно искать файлы.
Если вы не можете вспомнить синтаксис команды, скопируйте его в текстовый файл для упрощения ссылки.

См. this thread.

Он упоминает недавнее изменение в Maven Eclipse Plugin:

+2

Если кто-то все еще борется с этим, см. этот https://bugs.eclipse.org/bugs/show_bug.cgi?id=317900 – rsilva4

0

Можем ли мы взглянуть на pom.xml проекта?

Вы пытались запустить команду mvn clean eclipse:clean eclipse:eclipse?

+0

К сожалению, это не помогает (я не пробовал, хотя, спасибо). mvn package btw. работает ... – egaga

8

Я думаю, ответ VonC является правильным (+1), если вы используете Затмение: цель затмения. Лично я нахожу, что это больше проблем, чем это стоит, и вместо этого используйте m2eclipse для управления зависимостями, передавая файлы метаданных eclipse в SCM.

Чтобы избежать необходимости использовать eclipse: затмение с полным именем, как предлагает VonC, вы можете настроить плагин в своей помпе, чтобы использовать точную версию. Это good practice в любом случае.

В ПОМ, укажите плагин следующим образом:

<build> 
... 
    <plugins> 
    ... 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-eclipse-plugin</artifactId> 
     <version>2.6</version> 
    </plugin> 
    </plugins> 
</build> 

Тогда всякий раз, когда вы вызываете затмение плагин, будет использоваться версия 2.6.

+0

Спасибо за это предложение. – egaga

+0

m2eclipse и указав версию: +1 – VonC

+0

учтите, что, полагаясь на m2eclipse для обработки конфигурации, вы будете зависимы от (E!) Eclipse-установки, чтобы построить ваш продукт. Maven как таковой работает на командной строке. Для проекта для любителей или небольшого проекта небольшого размера это может быть неактуальным, но в рамках промышленной настройки это обычно неприемлемо, чтобы процесс сборки зависел от некоторых разработчиков ПК. – Ichthyo

Смежные вопросы