Author: sisbell
Date: Mon May 21 16:06:52 2007
New Revision: 540347

URL: http://svn.apache.org/viewvc?view=rev&rev=540347
Log:
Fixed FxCop to handle multi-module builds. A little tricky. FxCop was executing 
from the parent pom so it did not recognize the correct relative path. Can't 
use absolute path because commandline adds quotes that confuses FxCop. Had to 
rely on a system var for this one.

Modified:
    
incubator/nmaven/trunk/plugins/maven-fxcop-plugin/src/main/java/org/apache/maven/dotnet/plugin/fxcop/FxCopMojo.java

Modified: 
incubator/nmaven/trunk/plugins/maven-fxcop-plugin/src/main/java/org/apache/maven/dotnet/plugin/fxcop/FxCopMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-fxcop-plugin/src/main/java/org/apache/maven/dotnet/plugin/fxcop/FxCopMojo.java?view=diff&rev=540347&r1=540346&r2=540347
==============================================================================
--- 
incubator/nmaven/trunk/plugins/maven-fxcop-plugin/src/main/java/org/apache/maven/dotnet/plugin/fxcop/FxCopMojo.java
 (original)
+++ 
incubator/nmaven/trunk/plugins/maven-fxcop-plugin/src/main/java/org/apache/maven/dotnet/plugin/fxcop/FxCopMojo.java
 Mon May 21 16:06:52 2007
@@ -76,10 +76,25 @@
      */
     private File targetDirectory;
 
+    private File rootDir;
+
 
     public void execute()
         throws MojoExecutionException
     {
+        //For multi-module
+        if ( project.getPackaging().equals( "pom" ) )
+        {
+
+            if ( System.getProperty( "NMAVEN.ROOT_DIR" ) == null )
+            {
+                System.setProperty( "NMAVEN.ROOT_DIR", 
project.getBasedir().getAbsolutePath() );
+            }
+            return;
+        }
+
+        rootDir = ( System.getProperty( "NMAVEN.ROOT_DIR" ) != null ) ? new 
File(
+            System.getProperty( "NMAVEN.ROOT_DIR" ) ) : null;
 
         ArtifactRepository localArtifactRepository =
             new DefaultArtifactRepository( "local", "file://" + 
localRepository, new AssemblyRepositoryLayout() );
@@ -139,9 +154,20 @@
         throws MojoExecutionException
     {
         List<String> commands = new ArrayList<String>();
-        commands.add( "/f:target" + File.separator + project.getArtifactId() + 
"." +
-            ArtifactType.getArtifactTypeForPackagingName( 
project.getPackaging() ).getExtension() );
-        commands.add( "/o:target" + File.separator + "Output.xml" );
+
+        String targetPath = "target" + File.separator + 
project.getArtifactId() + "." +
+            ArtifactType.getArtifactTypeForPackagingName( 
project.getPackaging() ).getExtension();
+        String outputPath = "target" + File.separator + "Output.xml";
+
+        String relativePathToTargetFile =
+            ( rootDir != null ) ? new File( project.getBasedir(), targetPath 
).getAbsolutePath().substring(
+                rootDir.getAbsolutePath().length() + 1 ) : targetPath;
+        String relativePathToOutputFile =
+            ( rootDir != null ) ? new File( project.getBasedir(), outputPath 
).getAbsolutePath().substring(
+                rootDir.getAbsolutePath().length() + 1 ) : outputPath;
+
+        commands.add( "/f:" + relativePathToTargetFile );
+        commands.add( "/o:" + relativePathToOutputFile );
         return commands;
     }
 }


Reply via email to