2009-09-09 20 views
13

Estoy intentando comenzar a modificar una aplicación existente con Eclipse. En realidad tenía que trabajar antes, pero he eliminado el proyecto, y ahora con "mvn eclipse: Eclipse" me sale el siguiente:Proyecto de configuración para eclipse usando 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 

Respuesta

31

¿Esto lo haría mejor?

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

Esto le dice experta en utilizar la versión 2.6 (que todavía funciona) en lugar del predeterminado 2.7 (que no lo hace).
Tendrá que ejecutar el comando de esta manera cada vez, por lo que es un poco incómodo, mientras que los cambios de archivo anteriores deberían dar como resultado una solución única, pero de esta manera no se arriesga a romper accidentalmente otra cosa y no lo hace Tengo que buscar archivos.
Si no puede recordar la sintaxis del comando, cópielo en un archivo de texto para una referencia más fácil.

Ver this thread.

Se menciona un cambio reciente en el Maven Eclipse Plugin:

+2

si alguien todavía está luchando con esto, vea esto https://bugs.eclipse.org/bugs/show_bug.cgi?id=317900 – rsilva4

0

Podemos echar un vistazo a la pom.xml del proyecto?

¿Intentaste ejecutar el comando mvn clean eclipse:clean eclipse:eclipse?

+0

Desafortunadamente eso no ayuda (no lo había intentado, gracias). paquete mvn por cierto. funciona ... – egaga

8

creo que la respuesta de VonC es la correcta (1) si está utilizando el eclipse: objetivo del eclipse. Personalmente, creo que es más problemático de lo que vale y, en su lugar, uso m2eclipse para administrar las dependencias, y los archivos de metadatos eclipse se envían a SCM.

Para evitar tener que invocar eclipse: eclipse con el nombre completo como sugiere VonC, puede configurar el complemento en su pom para usar la versión exacta. Esto es good practice de todos modos.

En el pom, especifique el plug-in de la siguiente manera:

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

Entonces cada vez que se invoca el plugin de eclipse, se utilizará la versión 2.6.

+0

Gracias por esta sugerencia. – egaga

+0

m2eclipse y especificando la versión: +1 – VonC

+0

tenga en cuenta que al depender de m2eclipse para manejar la configuración, se volverá dependiente de una instalación (en funcionamiento) de Eclipse para construir su producto. Maven como tal trabaja en la línea de comando. Para un proyecto de aficionado, o un proyecto de corta duración de poca duración, esto podría ser irrelevante, pero dentro de una configuración industrial es típicamente inaceptable, tener el proceso de compilación depende de algunos desarrolladores PC – Ichthyo

Cuestiones relacionadas