在我的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
如何构建应用程序?
答案 0 :(得分:3)
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
然后应该构建应用程序。