[ http://jira.codehaus.org/browse/MNG-5039?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Bentmann closed MNG-5039. ---------------------------------- Resolution: Duplicate Assignee: Benjamin Bentmann > Maven does not properly track class files to be included in jar/test breaking > incremental build > ----------------------------------------------------------------------------------------------- > > Key: MNG-5039 > URL: http://jira.codehaus.org/browse/MNG-5039 > Project: Maven 2 & 3 > Issue Type: Bug > Components: Plugins and Lifecycle > Affects Versions: 2.2.1, 3.0 > Reporter: Emil Sit > Assignee: Benjamin Bentmann > Priority: Critical > > When files in the source tree (either src/main or src/test) are renamed or > removed, the class files resulting from their prior compilation remain in the > corresponding target/ directories. It seems that surefire and package > plugins simply grab everything from target/ and as a result, incremental > builds are not correct. For example, > * If you remove a test source file and the test will continue to run. This is > bad esp when the test is failing; packaging will fail even though it should > not. > * If you remove/rename a source file and the class file will continue to be > in the jar. This may cause tests to succeed even though they should not. > (And if you share the jar, this will affect downstream non-test dependencies.) > I wrote up a test suite for the second case and put it up at > https://github.com/sit/java-build-test. To run it ... > git clone git://github.com/sit/java-build-test.git > cd java-build-test > sh runme.sh > (It does rely on git to automate the rename/delete actions though so a tar of > the sources won't work.) > In addition to Maven, it tests Gradle (which works) and Buildr (which behaves > the same as Maven). > While incremental builds are not the recommendation for official > deliverables, this does make Maven appear extremely unreliable to developers > who never know after syncing whether they will have to do a clean build or if > an incremental one is correct. -- 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