You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "fabrizio giustina (JIRA)" <ji...@codehaus.org> on 2010/04/03 17:56:23 UTC

[jira] Updated: (MECLIPSE-621) mvn eclipse:eclipse fails or doesn't generate proper .classpath when specifying the same resource directory with different filtering rules

     [ http://jira.codehaus.org/browse/MECLIPSE-621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

fabrizio giustina updated MECLIPSE-621:
---------------------------------------

    Affects Version/s: 2.8
        Fix Version/s: 2.9

> mvn eclipse:eclipse fails or doesn't generate proper .classpath when specifying the same resource directory with different filtering rules
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MECLIPSE-621
>                 URL: http://jira.codehaus.org/browse/MECLIPSE-621
>             Project: Maven 2.x Eclipse Plugin
>          Issue Type: Bug
>          Components: Core : Dependencies resolution and build path (.classpath)
>    Affects Versions: 2.6, 2.7, 2.8
>         Environment: GNU/Linux (Ubuntu  9.10), Java 6u16, maven 2.2.1
>            Reporter: Pascal Thivent
>            Assignee: fabrizio giustina
>             Fix For: 2.9
>
>         Attachments: maven-eclipse-plugin-resources-testcase.zip
>
>
> Let's say I have a resource directory ({{src/main/resources}}) that contains properties and XML and want to filter {{.properties}} only. My pom.xml is setup as follow:
> {code:xml} 
>   <build>
>     <resources>
>       <resource>
>         <directory>src/main/resources</directory>
>         <filtering>true</filtering>
>         <includes>
>           <include>**/*.properties</include>
>         </includes>
>       </resource>
>       <resource>
>         <directory>src/main/resources</directory>
>         <filtering>false</filtering>
>         <excludes>
>           <exclude>**/*.properties</exclude>
>         </excludes>
>       </resource>
>     </resources>
>     <plugins>
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-eclipse-plugin</artifactId>
>         <version>2.7</version>
>       </plugin>
>     </plugins>
>   </build>
> {code} 
> This works fine when running maven on the command line. However, when I run {{mvn eclipse:eclipse}} with the eclipse plugin 2.7, the build just fails:
> {code}
> [INFO] ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO] ------------------------------------------------------------------------
> [INFO] Request to merge when 'filtering' is not identical. Original=resource src/main/resources: output=target/classes, include=[**/*.properties], exclude=[**/*.java], test=false, filtering=true, merging with=resource src/main/resources: output=target/classes, include=[], exclude=[**/*.properties|**/*.java], test=false, filtering=false
> [INFO] ------------------------------------------------------------------------
> [INFO] For more information, run Maven with the -e switch
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 2 seconds
> [INFO] Finished at: Wed Nov 25 18:47:32 CET 2009
> [INFO] Final Memory: 8M/79M
> [INFO] ------------------------------------------------------------------------
> {code}
> With the maven eclipse plugin version 2.6, the build passes but the {{.classpath}} doesn't contain the expected informations in the {{including}} attribute of the classpathentry {{src/main/resources}}, XML files are not included in the actual result:
> {{code:xml}}
> <classpath>
>   <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
>   <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
>   <classpathentry kind="src" path="src/main/resources" including="**/*.properties" excluding="**/*.java"/>
>   <classpathentry kind="output" path="target/classes"/>
>   <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
>   <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
> </classpath>
> {{code}}
> I'm not really sure what the expected result should be (should the union of {{**/*.properties}} and all other files that are not {{**/*.properties}} be {{**/*.*}}?) but the actual result is not correct.
> Specifying sourceIncludes/sourcesExcludes (as documented [here|http://maven.apache.org/plugins/maven-eclipse-plugin/examples/specifying-source-path-inclusions-and-exclusions.html] doesn't help (and it's not clear to me if it's the right things to do).
> For now, I'm using the following setup (I've split filtered and non filtered resources into separate directories) as workaround:
> {{code:xml}}
>     <resources>
>         <resource>
>             <directory>src/main/resources1</directory>
>             <filtering>true</filtering>
>             <includes>
>                 <include>**/*.properties</include>
>             </includes>
>         </resource>
>         <resource>
>             <directory>src/main/resources2</directory>
>             <filtering>false</filtering>
>             <includes>
>                 <include>**/*.xml</include>
>             </includes>
>         </resource>
>     </resources>
> {{code}}
> But still, there is clearly a regression between versions prior to 2.7 and 2.7. I'm attaching a project allowing to reproduce this.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira