You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by "Vincent Massol (JIRA)" <ji...@codehaus.org> on 2006/01/08 19:19:01 UTC

[jira] Commented: (MNG-1945) project.getBuild().setSourceDirectory() should modify the compile source roots automatically

    [ http://jira.codehaus.org/browse/MNG-1945?page=comments#action_55224 ] 

Vincent Massol commented on MNG-1945:
-------------------------------------

err.. the correct code is:

    private void redirectSourceDirectories()
    {
        String oldSourceDirectory = this.project.getBuild().getSourceDirectory();

        this.project.getBuild().setSourceDirectory( this.cloverOutputSourceDirectory );
        
        // Maven2 limitation: changing the source directory doesn't change the compile source roots
        List sourceRoots = this.project.getCompileSourceRoots();
        for (int i = 0; i < sourceRoots.size(); i++)
        {
            String sourceRoot = (String) this.project.getCompileSourceRoots().get( i );
            if (sourceRoot.equals(oldSourceDirectory))
            {
                this.project.getCompileSourceRoots().remove( i );

                // Note: Ideally we should add the new compile source root at the same place as the
                // one we're removing but there's no API for this...
                this.project.addCompileSourceRoot( this.project.getBuild().getSourceDirectory() );
            }
        }
    }


> project.getBuild().setSourceDirectory() should modify the compile source roots automatically
> --------------------------------------------------------------------------------------------
>
>          Key: MNG-1945
>          URL: http://jira.codehaus.org/browse/MNG-1945
>      Project: Maven 2
>         Type: Improvement

>     Versions: 2.0.1
>     Reporter: Vincent Massol

>
>
> Here's the code that I have in the clover plugin right now:
>     private void redirectSourceDirectories()
>     {
>         String oldSourceDirectory = this.project.getBuild().getSourceDirectory();
>         this.project.getBuild().setSourceDirectory( this.cloverOutputSourceDirectory );
>         
>         // Maven2 limitation: changing the source directory doesn't change the compile source roots
>         Iterator sourceRoots = this.project.getCompileSourceRoots().iterator();
>         for (int i = 0; sourceRoots.hasNext(); i++)
>         {
>             String sourceRoot = (String) this.project.getCompileSourceRoots().get( i );
>             if (sourceRoot.equals(oldSourceDirectory))
>             {
>                 this.project.getCompileSourceRoots().remove( i );
>                 // Note: Ideally we should add the new compile source root at the same place as the
>                 // one we're removing but there's no API for this...
>                 this.project.addCompileSourceRoot( this.project.getBuild().getSourceDirectory() );
>             }
>         }
>     }
> I believe this could be put in Maven core.

-- 
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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org