You cant do it dor surefire. Tests are sometimes done by reflection and you
cant ask a dep tree by test.in real world.
Le 7 sept. 2012 08:37, "Mark Struberg" <strub...@yahoo.de> a écrit :

> > I may be missing something, but if all plugins implement this logic,
> > how it will be different from implicitly doing "clean" during each
> > build?
>
> There is actually a huge difference
>
> a.) yes, there are quite a few of such plugins which do not need this.
> Think about sql-maven-plugin, openjpa-maven-plugin, etc
>
> b.) A plugin will only delete all it's output from a previous invocation
> AFTER it detects that it really needs to do something! If there is e.g. no
> .java file which is newer than it's corresponding .class and no .java file
> got added or removed, then the whole compilation doesn't get triggered. Of
> course it's currently (without such a helper) hard to detect if a file got
> removed from src/...
>
> A very simple hack would be to create a DirectoryScanner and store / later
> compare the md5 of all ./src files and trigger the clean lifecycle if that
> got changed. That seems to be the stuff the incremental-build-plugin does.
> That would be better than nothing, but not sure if it would be sufficient.
> I'd at least try to get rid of unnecessary surefire executions.
>
> LieGrue,
> strub
>
>
>
>
> ----- Original Message -----
> > From: Igor Fedorenko <i...@ifedorenko.com>
> > To: dev@maven.apache.org
> > Cc:
> > Sent: Friday, September 7, 2012 4:14 AM
> > Subject: Re: [incremental build] Detect leftovers from a previous build
> >
> > I may be missing something, but if all plugins implement this logic,
> > how it will be different from implicitly doing "clean" during each
> > build? Or, put differently, are there plugins that do not need to clean
> > their previous output to be absolutely sure they properly handle
> > incremental rebuilds?
> >
> > --
> > Regards,
> > Igor
> >
> > On 12-09-06 2:52 PM, Mark Struberg wrote:
> >>
> >>
> >>  Hi!
> >>
> >>  I had some idea for detecting stale changes in maven which is pretty
> > generic
> >>
> >>
> >>  The problem hits us if you compile BeanA and BeanA2 in a project where
> > BeanA2 is using BeanA.
> >>  On a
> >>
> >>  $> mvn clean compile
> >>
> >>  you will get both BeanA.class and BeanA2.class in target/classes
> >>  Now delete BeanA.java
> >>  Currently (2.6-SNAPSHOT) the maven-compiler-plugin only compiles all
> > sources without doing any cleanup and thus BeanA.class will still remain
> in
> > target/classes.
> >>
> >>
> >>  That is clearly a bug as BeanA2 will be left broken, packaged into a
> broken
> > jar, ...
> >>
> >>
> >>
> >>  How can we avoid that?
> >>
> >>  Simple answer: A plugin which doesnt support those cases by the
> underlying
> > took (javac) must always first clean up the stuff it generated during
> the last
> > invocation.
> >>
> >>  How can we do that?
> >>
> >>  step 1: Start a DirectoryScanner and get all files in target/classes.
> > Remember this list!
> >>
> >>
> >>  step 2: Run the compiler
> >>
> >>
> >>  step 3: List all files in target/classes again and remove all files you
> > found in step 1. You will end up with a list of all files generated by
> the
> > compilation as result.
> >>
> >>  step 4: Store this list into
> > target/maven-status/maven-compiler-plugin/default/createdfiles.lst
> > ('default' is the plugin execution. We need this in case we have
> > multiple <executions>).
> >>
> >>
> >>  On the next compile you just need to check if you have such a
> > createdfiles.lst file and then first remove all the files listed in it
> as step
> > 0.
> >>  Then you can continue with step 1 from scratch.
> >>
> >>  We could easily create a utility class for it which keeps the state
> with
> > methods
> >>
> >>  public class ChangeDetector /* TODO find better name */
> >>  {
> >>  File[] readPreviouslyDetectedFileList(File targetFile);
> >>  void recordFiles(File baseDir)
> >>  File[] detectNewFiles();
> >>  storeDetectedFileList(File targetFile)
> >>  }
> >>
> >>  This can e.g. also be used by the maven-resources-plugin to get rid of
> > copied resources which got deleted from src/main/resources.
> >>
> >>  Do you have a better idea? Any ideas for improving this?
> >>  And a big question: how can I get hold of the current <execution> id
> > in a plugin?
> >>
> >>
> >>  LieGrue,
> >>  strub
> >>
> >>  ---------------------------------------------------------------------
> >>  To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >>  For additional commands, e-mail: dev-h...@maven.apache.org
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > For additional commands, e-mail: dev-h...@maven.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>

Reply via email to