softwaremill / scala-clippy

Good advice for Scala compiler errors
Apache License 2.0
312 stars 20 forks source link

Options not recognized when using plugin via Gradle #46

Open colindean opened 7 years ago

colindean commented 7 years ago

I added this to my dependencies:

scalaCompilerPlugin 'com.softwaremill.clippy:plugin_2.11:0.5.1:bundle'

I added this to my compile options:

tasks.withType(ScalaCompile) {
  // adds xgettext compiler plugin
  scalaCompileOptions.additionalParameters = [
    '-Xplugin:' + configurations.scalaCompilerPlugin.asPath,
    '-P:xgettext:com.example.mycode.Translate',
    '-P:clippy:colors=true',
    "-P:clippy:projectRoot="+projectDir
  ]
}

I already have another compiler plugin working, scala-xgettext.

The transcript shows that the options are detected and that the expected jars are included in the -Xplugin option, but then there's the bad option errors:

16:47:52.169 [QUIET] [system.out] 16:47:52.169 [DEBUG] [org.gradle.api.internal.tasks.scala.ZincScalaCompiler] Calling Scala compiler with arguments  (CompilerInterface):
16:47:52.169 [QUIET] [system.out]   -deprecation
16:47:52.169 [QUIET] [system.out]   -unchecked
16:47:52.169 [QUIET] [system.out]   -Xplugin:/Users/cdean/.gradle/caches/modules-2/files-2.1/tv.cntt/xgettext_2.11/1.4/4c32710394e5adbdceffa41eb015b8ea73ed0d1e/xgettext_2.11-1.4.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.softwaremill.clippy/plugin_2.11/0.5.1/7e86844a97133c67f6a6fa85d0b307023f1d7834/plugin_2.11-0.5.1-bundle.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.11.8/fe1285c9f7b58954c5ef6d80b59063569c065e9a/scala-compiler-2.11.8.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.11.8/ddd5a8bced249bedd86fb4578a39b9fb71480573/scala-library-2.11.8.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.lihaoyi/scalaparse_2.11/0.4.2/69d02959861f2718d202cedbaffe64a80ef14760/scalaparse_2.11-0.4.2.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fansi_2.11/0.2.3/8b366e1a06a553abedcbf1ab00c3431c9c7a65aa/fansi_2.11-0.2.3.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.11.8/b74530deeba742ab4f3134de0c2da0edc49ca361/scala-reflect-2.11.8.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.11/1.0.4/b67c76af885ba3323ce51bbed4c9232f4bd5d8fd/scala-xml_2.11-1.0.4.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-parser-combinators_2.11/1.0.4/7369d653bcfa95d321994660477a4d7e81d7f490/scala-parser-combinators_2.11-1.0.4.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fastparse_2.11/0.4.2/d6bdae03bb409a3cb3efd1f57ed7d9fb42388672/fastparse_2.11-0.4.2.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.lihaoyi/sourcecode_2.11/0.1.3/97b9b3b76a2488ab3c009305f559467de81b2a85/sourcecode_2.11-0.1.3.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fastparse-utils_2.11/0.4.2/6c48626b72e64752bec0c3bc3c821f8c6f141a44/fastparse-utils_2.11-0.4.2.jar
16:47:52.169 [QUIET] [system.out]   -P:xgettext:com.example.mycode.common.Translate
16:47:52.169 [QUIET] [system.out]   -P:clippy:colors=true
16:47:52.169 [QUIET] [system.out]   -P:clippy:projectRoot=/Users/cdean/Source/myproject
16:47:52.169 [QUIET] [system.out]   -bootclasspath
16:47:52.169 [QUIET] [system.out]   /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/classes:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.11.8/ddd5a8bced249bedd86fb4578a39b9fb71480573/scala-library-2.11.8.jar
16:47:52.169 [QUIET] [system.out]   -classpath
16:47:52.169 [QUIET] [system.out]   /Users/cdean/Source/myproject/build/classes/main:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.example.mycode/retry-manager/0.1.13/6ec8cd0ca7f878d1811389fef023a9ff6cc92ca0/retry-manager-0.1.13.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.11/1.0.5/77ac9be4033768cf03cc04fbd1fc5e5711de2459/scala-xml_2.11-1.0.5.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.ibm.json/json4j-apache/20150218/d30d91ad92a7b20d30e3d420fc96c3795591d83a/json4j-apache-20150218.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/io.monix/monix-eval_2.11/2.0.0/9c2782cfd156b5e3068e27148793c94ca3560b6d/monix-eval_2.11-2.0.0.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.iheart/ficus_2.11/1.2.3/8079cccd92946255a81df92768e647e7004a3147/ficus_2.11-1.2.3.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.github.scopt/scopt_2.11/3.4.0/42cb5f951e3583442a942e787a8d6e982a12e0d4/scopt_2.11-3.4.0.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.example.mycode/vcrypt-java/4.2.4/41e6437933ac5eba8bf23a4b88ed98fa4ce01a4/vcrypt-java-4.2.4.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.log4s/log4s_2.11/1.2.1/c9f572043e4057193d45f4cf43eda85259b0aae1/log4s_2.11-1.2.1.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-log4j12/1.7.12/485f77901840cf4e8bf852f2abb9b723eb8ec29/slf4j-log4j12-1.7.12.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/tv.cntt/scaposer_2.11/1.9/6593eb239738593ea559a8aff203db93a00ae98/scaposer_2.11-1.9.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5/a1e6cbb3cc2c5f210dd1310ff9fcb2c09c0d1438/httpclient-4.5.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.1/f5aa318bda4c6c8d688c9d00b90681dcd82ce636/httpcore-4.4.1.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.5/7bdb321e86724b16af6134a0fd22fec649eda971/httpmime-4.5.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/b1b6ea3b7e4aa4f492509a4952029cd8e48019ad/commons-io-2.4.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.h2database/h2/1.4.192/1106492605db135523d2817881cdf029d9292afa/h2-1.4.192.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/io.monix/monix-types_2.11/2.0.0/3bedf8c865903f8c6b9bc27ce0afaef68f7f8311/monix-types_2.11-2.0.0.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/io.monix/monix-execution_2.11/2.0.0/af6016abefbc1c14bb6eef1750e5b15d207439bf/monix-execution_2.11-2.0.0.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/com.typesafe/config/1.3.0/f533aa6ea13e443b50e639d070986c42d03efc35/config-1.3.0.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.12/8e20852d05222dc286bf1c71d78d0531e177c317/slf4j-api-1.7.12.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/log4j/log4j/1.2.17/5af35056b4d257e4b64b9e8069c0746e8b08629f/log4j-1.2.17.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-parser-combinators_2.11/1.0.4/7369d653bcfa95d321994660477a4d7e81d7f490/scala-parser-combinators_2.11-1.0.4.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.9/9ce04e34240f674bc72680f8b843b1457383161a/commons-codec-1.9.jar:/Users/cdean/.gradle/caches/modules-2/files-2.1/org.reactivestreams/reactive-streams/1.0.0/14b8c877d98005ba3941c9257cfe09f6ed0e0d74/reactive-streams-1.0.0.jar:/Users/cdean/Source/myproject/build/classes/main
16:47:52.909 [ERROR] [system.err] 16:47:52.909 [ERROR] [org.gradle.api.internal.tasks.scala.ZincScalaCompiler] bad option: -P:clippy:colors=true
16:47:52.909 [ERROR] [system.err] 16:47:52.909 [ERROR] [org.gradle.api.internal.tasks.scala.ZincScalaCompiler] bad option: -P:clippy:projectRoot=/Users/cdean/Source/myproject
16:47:52.994 [ERROR] [system.err] 16:47:52.994 [ERROR] [org.gradle.api.internal.tasks.scala.ZincScalaCompiler] two errors found
16:47:52.994 [QUIET] [system.out] 16:47:52.994 [DEBUG] [org.gradle.api.internal.tasks.scala.ZincScalaCompiler] Compilation failed (CompilerInterface)
colindean commented 7 years ago

Most of the search results I'm turning up on DDG are reflecting IntelliJ or SBT build problems were someone added an option but forgot to add the jar to the -Xplugin list.

I did verify that the clippy plugin is readable at the path in the -Xplugin line above.

colindean commented 7 years ago

If I remove the options, I would still expect scala-clippy to run, evidenced by the creation of $HOME/.clippy. It is not present.

(I kinda wish it was put at $HOME/.cache/clippy instead, so that I know I can wipe out that directory and things will just be redownloaded.)

adamw commented 7 years ago

Hmm a quick guess, maybe each plugin needs a separate -Xplugin:[path] entry?

adamw commented 7 years ago

As for using .cache, see #29 - it's not too late to change this yet ;)

kabdelrahman commented 7 years ago

Any updates on this one ?

adamw commented 7 years ago

@kabdelrahman You also have problems with gradle? We're not gradle users unfortunately, so I think we would need somebody to take a look and try to fix the problem :)

kabdelrahman commented 7 years ago

@adamw Yah we are using SBT in most of the projects but also gradle in one of them. I will try to figure this out. Thanks