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