java - 如何构建和运行 okhttp 3.10.0
问题描述
我从https://github.com/square/okhttp克隆代码
我想阅读3.10.0版本的源代码。
但它无法成功编译。
gongzelong:okhttp gongzelong$ git branch
master
* parent-3.10.0
gongzelong:okhttp gongzelong$ mvn clean verify
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] 'build.plugins.plugin[org.apache.maven.plugins:maven-surefire-plugin].dependencies.dependency.version' for org.mortbay.jetty.alpn:alpn-boot:jar must be a valid version but is '${alpn.jdk8.version}'. @ com.squareup.okhttp3:parent:3.10.0, /Users/gongzelong/Android/okhttp/pom.xml, line 320, column 28
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project com.squareup.okhttp3:okhttp:3.10.0 (/Users/gongzelong/Android/okhttp/okhttp/pom.xml) has 1 error
[ERROR] 'build.plugins.plugin[org.apache.maven.plugins:maven-surefire-plugin].dependencies.dependency.version' for org.mortbay.jetty.alpn:alpn-boot:jar must be a valid version but is '${alpn.jdk8.version}'. @ com.squareup.okhttp3:parent:3.10.0, /Users/gongzelong/Android/okhttp/pom.xml, line 320, column 28
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
添加我的答案中的代码后,它可以运行“mvn clean verify”
但 IDEA 显示如下错误:
解决方案
对于 org.mortbay.jetty.alpn:alpn-boot:jar 必须是有效版本,但为 '${alpn.jdk8.version}'
在他们的 build.gradle 他们有
def alpnBootVersion() {
def version = System.getProperty('alpn.boot.version')
if (version != null) {
return version
}
他们可能在本地 gradle.properties 中添加了 alpn.jdk8.version 作为变量。更改def version = System.getProperty('alpn.boot.version')
为def version = 8.1.13
,这应该可以解决问题。