Hello Adam,

I added the following line to the top of my build.gradle:

org.codenarc.ant.CodeNarcTask.class.classLoader.addURL(file('config/codenarc').toURI().toURL())

And changed my config/codenarc/rules.groovy back to using:

rule('MyCustomRuleScript.groovy')

and this also successfully locates the MyCustomRuleScript.groovy file which
I have placed next to rules.groovy in the config/codenarc folder.

However, the same exception is being thrown. 

My script file is taken straight from the codenarc howto example:

[code]
import org.codenarc.rule.AbstractRule
import org.codenarc.source.SourceCode

/**
 * Sample rule. Checks for static fields.
 */
class MyCustomRuleScript extends AbstractRule {
    String name = 'MyCustomRule'
    int priority = 2

    void applyTo(SourceCode sourceCode, List violations) {
        sourceCode.ast.classes.each { clazz ->
            clazz.fields.each { fieldNode ->
                if (fieldNode.static) {
                    violations << createViolation(sourceCode, fieldNode)
                }
            }
        }
    }
}
[/code]


I should have mentioned this earlier... I am running this in Cygwin on
Windows XP with gradle 0.9.2.

The output of running "gradle clean build -s" is as follows:

[code]
% gradle clean build -s
:clean
:compileJava UP-TO-DATE
:compileGroovy
:processResources
:classes
:jar SKIPPED
:war
:assemble
:checkstyleMain UP-TO-DATE
:checkstyleTest
:codenarcMain

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\MyDev\workspace\ajfwil\bookm\bookm-gradle\build.gradle'

* What went wrong:
Execution failed for task ':codenarcMain'.
Cause: org.codehaus.groovy.control.MultipleCompilationErrorsException:
startup failed:
script1000001.groovy: 2: unable to resolve class
org.codenarc.source.SourceCode
 @ line 2, column 1.
   import org.codenarc.source.SourceCode
   ^

script1000001.groovy: 1: unable to resolve class
org.codenarc.rule.AbstractRule
 @ line 1, column 1.
   import org.codenarc.rule.AbstractRule
   ^

2 errors


* Try:
Run with -d option to get more details. Run with -S option to get the full
(very verbose) stacktrace.

* Exception is:
org.gradle.api.tasks.LocationAwareTaskExecutionException: Build file
'C:\MyDev\workspace\ajfwil\bookm\bookm-gradle\build.gradle'
Execution failed for task ':codenarcMain'.
        at
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(DefaultTaskExecuter.java:66)
        at
org.gradle.api.internal.tasks.DefaultTaskExecuter.execute(DefaultTaskExecuter.java:43)
        at
org.gradle.api.internal.project.taskfactory.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:32)
        at
org.gradle.api.internal.project.taskfactory.ExecutionShortCircuitTaskExecuter.execute(ExecutionShortCircuitTaskExecuter.java:50)
        at
org.gradle.api.internal.tasks.SkipTaskExecuter.doExecute(SkipTaskExecuter.java:57)
        at
org.gradle.api.internal.tasks.SkipTaskExecuter.execute(SkipTaskExecuter.java:35)
        at
org.gradle.api.internal.tasks.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:32)
        at
org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:231)
        at
org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:167)
        at
org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:160)
        at
org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:78)
        at
org.gradle.execution.TaskNameResolvingBuildExecuter.execute(TaskNameResolvingBuildExecuter.java:113)
        at
org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildExecuter.java:54)
        at
org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:153)
        at
org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:107)
        at
org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:75)
        at
org.gradle.launcher.RunBuildAction.execute(RunBuildAction.java:41)
        at
org.gradle.launcher.RunBuildAction.execute(RunBuildAction.java:27)
        at
org.gradle.launcher.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:209)
        at
org.gradle.launcher.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:193)
        at org.gradle.launcher.Main.execute(Main.java:55)
        at org.gradle.launcher.Main.main(Main.java:40)
        at
org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:46)
        at
org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:28)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:24)
Caused by: : org.codehaus.groovy.control.MultipleCompilationErrorsException:
startup failed:
script1000001.groovy: 2: unable to resolve class
org.codenarc.source.SourceCode
 @ line 2, column 1.
   import org.codenarc.source.SourceCode
   ^

script1000001.groovy: 1: unable to resolve class
org.codenarc.rule.AbstractRule
 @ line 1, column 1.
   import org.codenarc.rule.AbstractRule
   ^

2 errors

        at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:116)
        at
org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:71)
        at
org.gradle.api.internal.project.ant.BasicAntBuilder.doInvokeMethod(BasicAntBuilder.java:86)
        at
org.gradle.api.internal.project.DefaultAntBuilder.super$3$invokeMethod(DefaultAntBuilder.groovy)
        at
org.gradle.api.internal.project.DefaultAntBuilder.invokeMethod(DefaultAntBuilder.groovy:37)
        at
org.gradle.api.plugins.quality.AntCodeNarc.execute(AntCodeNarc.groovy:28)
        at org.gradle.api.plugins.quality.CodeNarc.check(CodeNarc.java:36)
        at
org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:158)
        at
org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:93)
        at
org.gradle.api.plugins.quality.CodeNarc_Decorated.invokeMethod(Unknown
Source)
        at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
        at
org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$2.execute(AnnotationProcessingTaskFactory.java:131)
        at
org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$2.execute(AnnotationProcessingTaskFactory.java:130)
        at
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(DefaultTaskExecuter.java:58)
        ... 24 more
Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException:
startup failed:
script1000001.groovy: 2: unable to resolve class
org.codenarc.source.SourceCode
 @ line 2, column 1.
   import org.codenarc.source.SourceCode
   ^

script1000001.groovy: 1: unable to resolve class
org.codenarc.rule.AbstractRule
 @ line 1, column 1.
   import org.codenarc.rule.AbstractRule
   ^

2 errors

        at
org.codenarc.ruleset.RuleSetUtil$_loadRuleScriptFile_closure1.doCall(RuleSetUtil.groovy:47)
        at
org.codenarc.ruleset.RuleSetUtil.loadRuleScriptFile(RuleSetUtil.groovy:45)
        at
org.codenarc.ruleset.TopLevelDelegate.rule(RuleSetBuilder.groovy:81)
        at Script1$_run_closure1.doCall(Script1.groovy:26)
        at Script1$_run_closure1.doCall(Script1.groovy)
        at
org.codenarc.ruleset.RuleSetBuilder.ruleset(RuleSetBuilder.groovy:41)
        at org.codenarc.ruleset.RuleSetBuilder$ruleset.call(Unknown Source)
        at
org.codenarc.ruleset.GroovyDslRuleSet$_closure1.doCall(GroovyDslRuleSet.groovy:48)
        at Script1.run(Script1.groovy:1)
        at
org.codenarc.ruleset.GroovyDslRuleSet.<init>(GroovyDslRuleSet.groovy:53)
        at
org.codenarc.ruleset.RuleSetUtil.loadRuleSetFile(RuleSetUtil.groovy:39)
        at org.codenarc.ruleset.RuleSetUtil$loadRuleSetFile.call(Unknown
Source)
        at
org.codenarc.CodeNarcRunner$_createRuleSet_closure2.doCall(CodeNarcRunner.groovy:96)
        at
org.codenarc.CodeNarcRunner.createRuleSet(CodeNarcRunner.groovy:95)
        at org.codenarc.CodeNarcRunner.execute(CodeNarcRunner.groovy:66)
        at org.codenarc.CodeNarcRunner$execute.call(Unknown Source)
        at org.codenarc.ant.CodeNarcTask.execute(CodeNarcTask.groovy:86)
        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        ... 37 more


BUILD FAILED

Total time: 11.093 secs
[/code]

Thanks again for your help with this.

Regards,
Adam Wilmore

-- 
View this message in context: 
http://gradle.1045684.n5.nabble.com/code-quality-plugin-location-of-custom-codenarc-rule-tp3373768p3380548.html
Sent from the gradle-user mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to