如何在运行gradle时覆盖maven的url

时间:2015-05-21 15:58:11

标签: maven jenkins gradle

我在build.gradle中有一个maven设置,如下所示。您可以看到我正在使用nexus服务器进行内部包管理。

repositories {
    jcenter()
    maven {
        url 'http://192.168.0.2:8081/nexus/content/groups/public/'
    }
}

首先,我无法在云环境中构建此项目,因为此nexus服务器不在云中。
其次,可以从具有域名的云访问此nexus服务器 第三,我无法将此URL更改为域名,因为Jenkins正在运行构建作业。

所以我想知道gradle可以支持在命令行中覆盖这个url值,就像使用-P一样?或者我可以运行另一个gradle任务来完成替换工作?

1 个答案:

答案 0 :(得分:0)

如果您知道您的nexus的ip并且可以访问您的构建服务器,我建议您修改etc / hosts文件,而不是添加以下行:

192.168.0.2 name.of.nexus.host

如果您无法通过这种方式解决问题,则可以使用-P。

传递命令行值
gradle someTask -PcommandLineProjectProp=commandLineProjectPropValue 

它为您提供了在构建中使用的commandLineProjectPropValue。

要在你的url字符串中使用它,你必须使用double qoutes(“”)和$ commandLineProjectPropValue。

所以:

url "$(commandLineProjectPropValue)rest/of/path"