codenarc-maven-pluginをmvn siteで使えるようにするパッチ
GroovyのコーディングスタイルをチェックするCodeNarcには、Mavenプラグインが用意されてはいるのだけど、mvn siteから実行させようとすると無限ループに陥ってしまう。
仕方ないから codenarc-maven-plugin 0.8-alpha-SNAPSHOT に対するパッチを書いた。
http://svn.codehaus.org/mojo/trunk/sandbox/codenarc-maven-plugin/ ここからチェックアウトして、パッチ当てて、mvn installして使って下さい。
pom.xmlのほうは、CodeNarcのバージョンを上げたついでにMaven 3.0でも動くように修正した(はず)。
Index: pom.xml =================================================================== --- pom.xml (revision 13777) +++ pom.xml (working copy) @@ -12,7 +12,7 @@ <groupId>org.codehaus.mojo</groupId> --> <artifactId>codenarc-maven-plugin</artifactId> - <version>0.8-alpha-SNAPSHOT</version> + <version>0.8-beta-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>CodeNarc Maven Plugin</name> @@ -56,35 +56,19 @@ </issueManagement> <properties> - <groovy.plugin.version>1.0-rc-3</groovy.plugin.version> + <gmaven.version>1.2</gmaven.version> </properties> <dependencies> <dependency> <groupId>org.apache.maven.reporting</groupId> <artifactId>maven-reporting-impl</artifactId> - <version>2.0</version> - </dependency> - <dependency> - <groupId>org.apache.maven.reporting</groupId> - <artifactId>maven-reporting-api</artifactId> - <version>2.0.8</version> - </dependency> - <dependency> - <groupId>org.apache.maven.shared</groupId> - <artifactId>maven-doxia-tools</artifactId> - <version>1.0</version> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <scope>test</scope> + <version>2.1</version> </dependency> <dependency> <groupId>org.codenarc</groupId> <artifactId>CodeNarc</artifactId> - <version>0.8.1</version> + <version>0.13</version> <exclusions> <exclusion> <groupId>ant</groupId> @@ -93,21 +77,6 @@ </exclusions> </dependency> <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.14</version> - </dependency> - <dependency> - <groupId>org.codehaus.groovy.maven</groupId> - <artifactId>gmaven-mojo</artifactId> - <version>1.0-rc-4</version> - </dependency> - <dependency> - <groupId>org.codehaus.groovy.maven</groupId> - <artifactId>gmaven-mojo</artifactId> - <version>${groovy.plugin.version}</version> - </dependency> - <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-resources</artifactId> <version>1.0-alpha-4</version> @@ -128,22 +97,20 @@ <version>2.5</version> </plugin> <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>shitty-maven-plugin</artifactId> - <version>1.0-alpha-3</version> - </plugin> - <plugin> - <groupId>org.codehaus.groovy.maven</groupId> + <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> - <version>${groovy.plugin.version}</version> + <version>${gmaven.version}</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> - <groupId>org.codehaus.groovy.maven</groupId> + <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> - <version>${groovy.plugin.version}</version> + <configuration> + <providerSelection>1.6</providerSelection> + <sourceEncoding>UTF-8</sourceEncoding> + </configuration> <executions> <execution> <goals> Index: src/main/groovy/org/codehaus/mojo/codenarc/CodeNarcMojo.groovy =================================================================== --- src/main/groovy/org/codehaus/mojo/codenarc/CodeNarcMojo.groovy (revision 13777) +++ src/main/groovy/org/codehaus/mojo/codenarc/CodeNarcMojo.groovy (working copy) @@ -21,8 +21,7 @@ import org.apache.maven.reporting.AbstractMavenReport import org.apache.maven.project.MavenProject -import org.codehaus.doxia.site.renderer.SiteRenderer; -import org.apache.maven.doxia.tools.SiteTool +import org.apache.maven.doxia.siterenderer.Renderer import org.codehaus.plexus.resource.ResourceManager import org.codehaus.plexus.resource.loader.FileResourceLoader @@ -30,10 +29,9 @@ * Create a CodeNarc Report. * * @goal codenarc - * @execute phase="site" * @requiresDependencyResolution compile * @requiresProject - * + * * @author <a href="mailto:gleclaire@codehaus.org">Garvin LeClaire</a> * @version $Id: CodeNarcMojo.groovy gleclaire $ */ @@ -76,7 +74,7 @@ * @readonly */ MavenProject project - + /** * Location where generated html will be created. * @@ -101,16 +99,7 @@ * @required * @readonly */ - SiteRenderer siteRenderer - - /** - * SiteTool. - * - * @component role="org.apache.maven.doxia.tools.SiteTool" - * @required - * @readonly - */ - protected SiteTool siteTool + Renderer siteRenderer /** * @component @@ -216,7 +205,7 @@ if (outputFile.exists()) { log.info("Generating CodeNarc HTML") - CodeNarcReportGenerator generator = new CodeNarcReportGenerator( getSink(), getBundle(locale), this.project.getBasedir(), siteTool) + CodeNarcReportGenerator generator = new CodeNarcReportGenerator( getSink(), getBundle(locale), this.project.getBasedir()) generator.setLog(log) @@ -304,7 +293,7 @@ return outputDirectory.getAbsolutePath() } - protected SiteRenderer getSiteRenderer() { + protected Renderer getSiteRenderer() { return this.siteRenderer } Index: src/main/groovy/org/codehaus/mojo/codenarc/CodeNarcReportGenerator.groovy =================================================================== --- src/main/groovy/org/codehaus/mojo/codenarc/CodeNarcReportGenerator.groovy (revision 13777) +++ src/main/groovy/org/codehaus/mojo/codenarc/CodeNarcReportGenerator.groovy (working copy) @@ -21,12 +21,11 @@ import groovy.util.slurpersupport.GPathResult import org.apache.maven.doxia.sink.Sink -import org.apache.maven.doxia.tools.SiteTool import org.apache.maven.plugin.logging.Log /** * The reporter controls the generation of the CodeNarc report. - * + * * @author <a href="mailto:gleclaire@codehaus.org">Garvin LeClaire</a> * @version $Id: CodeNarcReportGenerator.groovy Z gleclaire $ */ @@ -209,14 +208,6 @@ File outputDirectory - /** - * "org.apache.maven.doxia.tools.SiteTool" - * - */ - SiteTool siteTool - - - File basedir GPathResult CodeNarcResults @@ -231,21 +222,17 @@ * The resource bundle to get the messages from. * @param basedir * The project base directory. - * @param siteTool - * Doxia SiteTool Handle. */ - CodeNarcReportGenerator(Sink sink, ResourceBundle bundle, File basedir, SiteTool siteTool) { + CodeNarcReportGenerator(Sink sink, ResourceBundle bundle, File basedir) { assert sink assert bundle assert basedir - assert siteTool this.sink = sink this.bundle = bundle this.basedir = basedir - this.siteTool = siteTool @@ -475,7 +462,7 @@ sink.section1_() } - + /** * Print the File Detail Section. */ @@ -618,7 +605,7 @@ } - + sink.table_() sink.section1_()