在我的 Gradle 依赖项文件中,我依赖于:
dependencies {
compile 'net.johnluetke.WeatherAPI:WeatherAPI:0.9.4'
WeatherAPI 又依赖于 org.reflections,它对 javassist 有基于 Maven 配置文件的依赖。
尝试构建我的(Java 8)应用程序时遇到的错误是:
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all dependencies for configuration ':compile'.
> Could not resolve org.javassist:javassist:${javassist.version}.
Required by:
:weatherenrich:0.1.0 > net.johnluetke.WeatherAPI:WeatherAPI:0.9.4 > org.reflections:reflections:0.9.9-RC2
> Illegal character in path at index 55: http://repo1.maven.org/maven2/org/javassist/javassist /${javassist.version}/javassist-${javassist.version}.pom
如何构建我的应用程序?
最佳答案
Gradle 不支持解析已发布的 POM 中的占位符 - 有关这方面的更多信息,请参阅 this support thread .
幸运的是,Gradle 可以解析同名的系统属性。
如果我们进入 org.reflections:reflections
的 pom.xml,我们可以看到 javassist 的配置文件设置:
https://github.com/ronmamo/reflections/blob/master/pom.xml#L129
因为应用程序是 Java 8,所以我们需要除版本 5 之外的任何 JRE 的配置文件,因此我们需要:
<javassist.version>3.18.2-GA</javassist.version>
因此,在 Java 应用程序的根目录中,添加一个文件 gradle.properties
,并添加以下条目:
systemProp.javassist.version=3.18.2-GA
然后应该构建应用程序。
关于maven - Gradle 构建失败,并显示“无法解析...${javassist.version}...路径中存在非法字符”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24712717/