为 gradle-vfs 插件配置代理
configure proxy for gradle-vfs plugin
tl;博士:
如何配置 gradle-vfs 插件使用的 https 代理?它似乎忽略了正常的 java/gradle 代理配置。
详细信息
基于此 gradle file 我尝试使用 gradle 从 asciidocs 创建 reveal.js 幻灯片。
我使用 gradle.properties 文件配置了代理设置,其内容类似于:
systemProp.http.proxyHost=myproxy
systemProp.http.proxyPort=8080
systemProp.http.nonProxyHosts=localhost
systemProp.https.proxyHost=myproxy
systemProp.https.proxyPort=8080
systemProp.https.nonProxyHosts=localhost
虽然此配置适用于 gradle,但在执行 java 构建(它下载插件和依赖项)时,参考构建文件中使用的 vfs 失败:
:download FAILED
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\workspaces\myproject\build.gradle' line: 47
* What went wrong:
Execution failed for task ':download'.
> Could not connect to HTTP server on "github.com".
第 47 行是此块中第一个以 cp
开头的行:
task download << {
mkdir downloadDir
vfs {
cp "zip:https://github.com/asciidoctor/asciidoctor-reveal.js/archive/${asciidoctorBackendVersion}.zip!asciidoctor-reveal.js-${asciidoctorBackendVersion}",
templateDir, recursive:true, overwrite:true
cp "zip:https://github.com/hakimel/reveal.js/archive/${revealjsVersion}.zip!reveal.js-${revealjsVersion}",
revealjsDir, recursive:true, overwrite:true
}
}
一个(我的)解决方案是添加定义代理参数的 vfs 选项。
这可能更复杂,例如通过构建一个任务来从系统环境中导出参数,但是这个有效:
task download << {
mkdir downloadDir
vfs {
options 'vfs.http.proxyHost' : 'mylocalsquid.lokal'
options 'vfs.http.proxyPort' : '3128'
options 'vfs.https.proxyHost' : 'mylocalsquid.lokal'
options 'vfs.https.proxyPort' : '3128'
cp "zip:https://github.com/asciidoctor/asciidoctor-reveal.js/archive/${asciidoctorBackendVersion}.zip!asciidoctor-reveal.js-${asciidoctorBackendVersion}",
templateDir, recursive:true, overwrite:true
cp "zip:https://github.com/hakimel/reveal.js/archive/${revealjsVersion}.zip!reveal.js-${revealjsVersion}",
revealjsDir, recursive:true, overwrite:true
}
}
这是从 http://ysb33r.github.io/groovy-vfs/1.0/docs/product-documentation.html
上的文档派生的
tl;博士:
如何配置 gradle-vfs 插件使用的 https 代理?它似乎忽略了正常的 java/gradle 代理配置。
详细信息
基于此 gradle file 我尝试使用 gradle 从 asciidocs 创建 reveal.js 幻灯片。
我使用 gradle.properties 文件配置了代理设置,其内容类似于:
systemProp.http.proxyHost=myproxy
systemProp.http.proxyPort=8080
systemProp.http.nonProxyHosts=localhost
systemProp.https.proxyHost=myproxy
systemProp.https.proxyPort=8080
systemProp.https.nonProxyHosts=localhost
虽然此配置适用于 gradle,但在执行 java 构建(它下载插件和依赖项)时,参考构建文件中使用的 vfs 失败:
:download FAILED
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\workspaces\myproject\build.gradle' line: 47
* What went wrong:
Execution failed for task ':download'.
> Could not connect to HTTP server on "github.com".
第 47 行是此块中第一个以 cp
开头的行:
task download << {
mkdir downloadDir
vfs {
cp "zip:https://github.com/asciidoctor/asciidoctor-reveal.js/archive/${asciidoctorBackendVersion}.zip!asciidoctor-reveal.js-${asciidoctorBackendVersion}",
templateDir, recursive:true, overwrite:true
cp "zip:https://github.com/hakimel/reveal.js/archive/${revealjsVersion}.zip!reveal.js-${revealjsVersion}",
revealjsDir, recursive:true, overwrite:true
}
}
一个(我的)解决方案是添加定义代理参数的 vfs 选项。 这可能更复杂,例如通过构建一个任务来从系统环境中导出参数,但是这个有效:
task download << {
mkdir downloadDir
vfs {
options 'vfs.http.proxyHost' : 'mylocalsquid.lokal'
options 'vfs.http.proxyPort' : '3128'
options 'vfs.https.proxyHost' : 'mylocalsquid.lokal'
options 'vfs.https.proxyPort' : '3128'
cp "zip:https://github.com/asciidoctor/asciidoctor-reveal.js/archive/${asciidoctorBackendVersion}.zip!asciidoctor-reveal.js-${asciidoctorBackendVersion}",
templateDir, recursive:true, overwrite:true
cp "zip:https://github.com/hakimel/reveal.js/archive/${revealjsVersion}.zip!reveal.js-${revealjsVersion}",
revealjsDir, recursive:true, overwrite:true
}
}
这是从 http://ysb33r.github.io/groovy-vfs/1.0/docs/product-documentation.html
上的文档派生的