我很难让 JUNG 和 Error Prone 在我基于 Gradle 的 Java 项目中很好地协同工作,我想知道是否有人以前遇到过这样的问题并可以帮助我找到解决方案。
我已经在JUNG和Error Prone的 GitHub 问题跟踪器上发布了这个问题,但似乎没有人知道它的原因是什么,这就是我在这里发布它的原因。
当我尝试
gradle run
使用以下内容运行时build.gradle
plugins { id 'application' id 'java' id 'net.ltgt.errorprone' version '0.0.8' } group 'org.jbduncan' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 mainClassName = 'org.jbduncan.helloworld.HelloWorld' repositories { jcenter() } dependencies { compile 'net.sf.jung:jung-graph-impl:2.1.1' errorprone 'com.google.errorprone:error_prone_core:2.0.11' } tasks.withType(JavaCompile) { options.encoding = 'UTF-8' options.compilerArgs = [ '-Xlint:all', '-Werror' ] }
和这堂课
package org.jbduncan.helloworld; public final class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } }
它发出以下消息。
:compileJava warning: [path] bad path element "C:\Users\Jonathan\.gradle\caches\modules-2\files-2.1\net.sf.jung\jung-graph-impl\2.1.1\8293acb2ab4c00a3939cb99a8751e5d38a4299dc\jung-api-2.1.1.jar": no such file or directory warning: [path] bad path element "C:\Users\Jonathan\.gradle\caches\modules-2\files-2.1\net.sf.jung\jung-graph-impl\2.1.1\8293acb2ab4c00a3939cb99a8751e5d38a4299dc\guava-19.0.jar": no such file or directory warning: [path] bad path element "C:\Users\Jonathan\.gradle\caches\modules-2\files-2.1\net.sf.jung\jung-api\2.1.1\e47ee4efdfacce12f0af620747d9d0e44bf2eaa4\guava-19.0.jar": no such file or directory error: warnings found and -Werror specified 1 error 3 warnings :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > Compilation failed with exit code 1; see the compiler error output for details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 5.488 secs
当我调查我的 Gradle 缓存的内容时,我可以看到,确实,上面提到的 jar 文件根本不存在。
当我查看时
C:\Users\Jonathan\.gradle\caches\modules-2\files-2.1\net.sf.jung\jung-graph-impl\2.1.1\8293acb2ab4c00a3939cb99a8751e5d38a4299dc\jung-graph-impl-2.1.1.jar
,其中META-INF/MANIFEST.MF
包含此文本。Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven 3.0.5 Built-By: jrtom Build-Jdk: 1.8.0-google-v7 Class-Path: jung-api-2.1.1.jar guava-19.0.jar
我在 JUNG 版本 2.1 和 2.0 上遇到了同样的问题,而且我尝试过的其他具有依赖项的库似乎都没有这个问题。
build.gradle
但是,当我从行id 'net.ltgt.errorprone' version '0.0.8'
和中排除时,问题就消失了errorprone 'com.google.errorprone:error_prone_core:2.0.11'
,所以我不清楚这是 JUNG 的问题,还是与gradle-errorprone-plugin或 Error Prone 相关。
我认为值得注意的是,自从我在 JUNG 问题跟踪器上发布了上述问题后,我将项目的 Error Prone 版本从 2.0.11 升级到了 2.0.13,但不幸的是,这并没有解决我的问题。