2015-05-21 10 views
0

我在build.gradle中有一個maven設置,如下所示。你可以看到我正在使用nexus服務器進行內部包管理。如何在運行gradle時重寫maven的url

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

首先,我不能在雲環境中構建此項目,因爲此nexus服務器不在雲中。其次,這個nexus服務器可以通過域名從雲端訪問。
第三,我無法將此網址更改爲域名,因爲建築工作由Jenkins運行。

所以我想知道gradle可以支持覆蓋這個url值在命令行中使用-P?或者,也許我可以運行另一個gradle任務來完成替換任務?

+0

我在詹金斯服務器Maven安裝,並在〜/ .m2目錄下的settings.xml配置的後視鏡不工作。 – lephix

回答

0

如果你知道你的承上啓下的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" 
+0

使用變量來替換網址不適合我的場景。因爲我無法更改這樣做的代碼。 – lephix

+0

如果不更改腳本,則無法更改。 – Opal