Somebody else seems to have had the same idea. http://groovy.329449.n5.nabble.com/who-have-the-experience-using-Checkstyle-or-PMD-with-groovy-code-td360895.html
On Fri, 10 Jul 2020, 05:35 LINUS FERNANDES, <[email protected]> wrote: > I guess I can try that. But I'd really not like to revert to JDK 1.8. > > The module errors occur when I try and use the plugin as-is without > pointing to a newer version like 1.6 and updating the groovy lang > dependencies. > > Then, I have the missing class exception. > > Maybe, it's simpler to just use strict Java syntax in the groovy sources > and run pmd and Checkstyle on them instead. > > On Fri, 10 Jul 2020, 00:25 John Patrick, <[email protected]> wrote: > >> Use Java 1.8 or older. >> >> Because the plugin was last released in 2015, and Java 9 was released >> in 2019, I suspect it doesn't support or handle modules correctly. >> >> I've just tried a simple project and I get the same stacktrace using >> Java 11, but it passes on Java 1.8. >> >> I tried this command line; >> $ mvn compile org.codehaus.mojo:codenarc-maven-plugin:0.22-1:codenarc >> >> Using these files; >> $ cat pom.xml >> <?xml version="1.0" encoding="UTF-8"?> >> <project xmlns="http://maven.apache.org/POM/4.0.0" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >> http://maven.apache.org/xsd/maven-4.0.0.xsd"> >> <modelVersion>4.0.0</modelVersion> >> <groupId>groupId</groupId> >> <artifactId>artifactId</artifactId> >> <version>1</version> >> </project> >> >> $ cat src/main/java/Example.groovy >> Console console=System.console(); >> def name=console.readLine("What is your name? ") >> println "Welcome to Groovy, $name!" >> >> John >> >> On Thu, 9 Jul 2020 at 05:44, LINUS FERNANDES <[email protected]> >> wrote: >> > >> > Does anyone have a working Maven configuration for CodeNarc for groovy >> > scripts static analysis? >> > Much appreciated if you share the same. >> > >> > Else, I'll just have to forget about it. >> > >> > On Wed, 8 Jul 2020, 12:58 LINUS FERNANDES, <[email protected]> >> > wrote: >> > >> > > I tried adding the following dependencies to the plugin : >> > > >> > > <dependency> <groupId>org.codehaus. >> groovy</groupId> >> > > <artifactId>groovy</ artifactId> >> > > <version>3.0.4</version> >> > > </dependency> >> > > <dependency> <groupId>org.codehaus.groovy</ >> > > groupId> <artifactId>groovy-all</ >> > > artifactId> <version>3.0.4</version> >> > > </dependency> >> > > >> > > The first doesn't resolve it and the second fails because : >> > > >> > > plugin org.codehaus.mojo:codenarc-maven-plugin:0.22-1 or one of its >> > > dependencies could not be resolved: Could not find artifact >> > > org.testng:testng:jar:7.2.0 in central ( >> > > https://repo.maven.apache.org/maven2) >> > > >> > > On Wed, 8 Jul 2020, 12:43 LINUS FERNANDES, <[email protected] >> > >> > > wrote: >> > > >> > >> I'm using Jdk 11. >> > >> >> > >> On Wed, 8 Jul 2020, 07:11 LINUS FERNANDES, < >> [email protected]> >> > >> wrote: >> > >> >> > >>> I get the following error for code narc version 0.16 and 0.17 as >> set in >> > >>> the configuration. >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> ERROR: Unable to make >> > >>> >> jdk.internal.loader.ClassLoaders$AppClassLoader(jdk.internal.loader.ClassLoaders$PlatformClassLoader,jdk.internal.loader.URLClassPath) >> > >>> accessible: module java.base does not "opens jdk.internal.loader" to >> > >>> unnamed module @7085bdee >> > >>> [java] java.lang.reflect.InaccessibleObjectException: Unable to >> > >>> make >> > >>> >> jdk.internal.loader.ClassLoaders$AppClassLoader(jdk.internal.loader.ClassLoaders$PlatformClassLoader,jdk.internal.loader.URLClassPath) >> > >>> accessible: module java.base does not "opens jdk.internal.loader" to >> > >>> unnamed module @7085bdee [java] at >> > >>> >> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:340) >> > >>> [java] at >> > >>> >> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:280) >> > >>> [java] at >> > >>> >> java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:189) >> > >>> [java] at >> > >>> >> java.base/java.lang.reflect.Constructor.setAccessible(Constructor.java:182) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.reflection.CachedConstructor$1.run(CachedConstructor.java:41) >> > >>> [java] at >> > >>> java.base/java.security.AccessController.doPrivileged(Native Method) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.reflection.CachedConstructor.<init>(CachedConstructor.java:39) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:73) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:63) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46) >> > >>> [java] at >> > >>> org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.reflection.CachedClass.getConstructors(CachedClass.java:257) >> > >>> [java] at >> > >>> groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:192) >> > >>> [java] at >> groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:196) >> > >>> [java] at >> > >>> >> groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createNormalMetaClass(MetaClassRegistry.java:149) >> > >>> [java] at >> > >>> >> groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(MetaClassRegistry.java:139) >> > >>> [java] at >> > >>> >> groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:122) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:165) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:195) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:214) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:747) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.createPojoSite(CallSiteArray.java:107) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:148) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) >> > >>> [java] at >> > >>> org.codenarc.util.io >> .ClassPathResource.getInputStream(ClassPathResource.groovy:59) >> > >>> [java] at >> > >>> org.codenarc.util.io.Resource$getInputStream.call(Unknown Source) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) >> > >>> [java] CodeNarc - static analysis for >> > >>> Groovy', [java] Usage: java >> > >>> org.codenarc.CodeNarc [OPTIONS] >> > >>> [java] at >> > >>> org.codenarc.util.io >> .ClassPathResource.getInputStream(ClassPathResource.groovy:39) >> > >>> [java] at >> > >>> org.codenarc.util.io.ClassPathResource$getInputStream.call(Unknown >> Source) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) >> > >>> [java] at >> > >>> >> org.codenarc.ruleregistry.PropertiesFileRuleRegistry.loadRules(PropertiesFileRuleRegistry.groovy:52) >> > >>> [java] at >> > >>> >> org.codenarc.ruleregistry.PropertiesFileRuleRegistry.this$2$loadRules(PropertiesFileRuleRegistry.groovy) >> > >>> [java] where OPTIONS are zero or more command-line >> options of >> > >>> the form "-NAME[=VALUE]": >> [java] >> > >>> -basedir=<DIR> [java] at >> > >>> >> org.codenarc.ruleregistry.PropertiesFileRuleRegistry$this$2$loadRules.callCurrent(Unknown >> > >>> Source) [java] The base (root) >> directory for >> > >>> the source code to be analyzed. [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) >> > >>> [java] Defaults to the current >> directory >> > >>> ("."). [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) >> > >>> >> > >>> Setting the CodeNarc version to 1.6 throws the following exception >> > >>> where the plugin can't find a groovy class: >> > >>> >> > >>> ERROR: java.lang.NoClassDefFoundError: >> > >>> org/codehaus/groovy/runtime/BytecodeInterface8 >> > >>> [java] java.lang.NoClassDefFoundError: >> > >>> org/codehaus/groovy/runtime/BytecodeInterface8 >> > >>> [java] at >> > >>> org.codenarc.CodeNarc.execute(CodeNarc.groovy:158) >> > >>> [java] at >> > >>> >> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native >> > >>> Method) [java] at >> > >>> >> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> > >>> [java] at >> > >>> >> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> > >>> [java] at >> > >>> java.base/java.lang.reflect.Method.invoke(Method.java:566) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) >> > >>> [java] at >> > >>> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) >> > >>> [java] at >> > >>> org.codenarc.CodeNarc.main(CodeNarc.groovy:147) >> > >>> [java] Caused by: java.lang.ClassNotFoundException: >> > >>> org.codehaus.groovy.runtime.BytecodeInterface8 >> > >>> [java] at >> > >>> >> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) >> > >>> [java] at >> > >>> >> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) >> > >>> >> > >>> Additionally, the Github repo at >> > >>> >> > >>> https://github.com/gleclaire/codenarc-maven-plugin/ >> > >>> >> > >>> has been archived by the owner. >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> On Wed, 8 Jul 2020, 06:24 LINUS FERNANDES, < >> [email protected]> >> > >>> wrote: >> > >>> >> > >>>> That's the original error. I also had issues with the 0.22.x >> version. >> > >>>> >> > >>>> I still am not clear whether I'm referring to the right CodeNarc >> plugin >> > >>>> version. >> > >>>> >> > >>>> >> > >>>> >> > >>>> On Wed, 8 Jul 2020, 00:02 LINUS FERNANDES, < >> [email protected]> >> > >>>> wrote: >> > >>>> >> > >>>>> Ok. Thanks. >> > >>>>> >> > >>>>> My mistake, apparently. >> > >>>>> <plugin> >> > >>>>> <groupId>org.codenarc</ groupId> >> > >>>>> <artifactId>CodeNarc</ artifactId> >> > >>>>> <version>1.6</version> </plugin> >> > >>>>> >> > >>>>> I've also had issues with the above. >> > >>>>> >> > >>>>> failed to get report for org.codenarc:CodeNarc: Failed to parse >> > >>>>> plugin descriptor for org.codenarc:CodeNarc:1.6 >> > >>>>> >> (/root/.m2/repository/org/codenarc/CodeNarc/1.6/CodeNarc-1.6.jar): No >> > >>>>> plugin descriptor found at META-INF/maven/plugin.xml -> [Help 1] >> > >>>>> >> > >>>>> What's this about? >> > >>>>> >> > >>>>> Thanks, >> > >>>>> Linus. >> > >>>>> >> > >>>>> >> > >>>>> On Tue, 7 Jul 2020, 22:20 Thomas Broyer, <[email protected]> >> wrote: >> > >>>>> >> > >>>>>> This is a Grails plugin, not a Maven plugin. >> > >>>>>> http://grails.org/plugin/codenarc >> > >>>>>> >> > >>>>>> On Tue, Jul 7, 2020 at 5:42 PM LINUS FERNANDES < >> > >>>>>> [email protected]> >> > >>>>>> wrote: >> > >>>>>> >> > >>>>>> > I'm trying to use the following maven plugin to run static code >> > >>>>>> analysis on >> > >>>>>> > groovy scripts. >> > >>>>>> > >> > >>>>>> > <plugin> >> > >>>>>> > <groupId>org.grails.plugins</groupId> >> > >>>>>> > <artifactId>codenarc</artifactId> >> > >>>>>> > <version>1.6</version> >> > >>>>>> > </plugin> >> > >>>>>> > >> > >>>>>> > I added the plugin repositories as below since it's not hosted >> on >> > >>>>>> the >> > >>>>>> > superPom's repos. >> > >>>>>> > >> > >>>>>> > <pluginRepositories> >> > >>>>>> > <pluginRepository> >> > >>>>>> > <id>grails-plugins</id> >> > >>>>>> > <name>Grails Plugins Repository</name> >> > >>>>>> > <url>https://repo.grails.org/grails/plugins</url> >> > >>>>>> > </pluginRepository> >> > >>>>>> > </pluginRepositories> >> > >>>>>> > >> > >>>>>> > However, I encounter an error downloading the dependencies >> since >> > >>>>>> maven >> > >>>>>> > expects a codenarc:jar file but a zip file is provided instead. >> > >>>>>> > >> > >>>>>> > How do I force Maven to download the zip file instead, >> preferably >> > >>>>>> > configuring it within the pom? >> > >>>>>> > >> > >>>>>> > >> > >>>>>> > Regards, >> > >>>>>> > Linus. >> > >>>>>> > >> > >>>>>> >> > >>>>>> >> > >>>>>> -- >> > >>>>>> Thomas Broyer >> > >>>>>> /tɔ.ma.bʁwa.je/ <http://xn--nna.ma.xn--bwa-xxb.je/> < >> http://xn--nna.ma.xn--bwa-xxb.je/> < >> > >>>>>> http://xn--nna.ma.xn--bwa-xxb.je/> >> > >>>>>> >> > >>>>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >>
