maven - 运行gradle时如何覆盖Maven的URL

标签 maven jenkins gradle

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

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

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

所以我想知道gradle是否可以像使用-P一样支持在命令行中覆盖此url值?或者也许我可以运行另一个gradle任务来执行替换工作?

最佳答案

如果您知道自己的IP地址并可以访问建筑服务器,则建议您修改etc / hosts文件,而不是添加以下行:

192.168.0.2 name.of.nexus.host

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

gradle someTask -PcommandLineProjectProp=commandLineProjectPropValue 

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

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

所以:
url "$(commandLineProjectPropValue)rest/of/path" 

关于maven - 运行gradle时如何覆盖Maven的URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30378807/

相关文章:

java - 对于 gradle 守护进程无法与 ClearCase 一起使用该怎么办?

java - 将外部 .jar 添加到 android studio 项目

java - 我可以通过本地存储库覆盖 Maven 依赖项版本吗?

java - 如何通过 Maven Surefire 插件运行选定的 suiteXmlFile

java - 尝试将 Java 消息服务 (JMS) API 与服务总线和 AMQP 结合使用

ios - oclint:oclint-json-compilation-database 返回 "Skipping [Path] Command line not found."

jenkins - 如何加快 Sonar 分析工作?

Docker Windows 10 - 如何运行 Jenkins,在 d 驱动器上绑定(bind)卷而不会出现权限错误

plugins - 编写可发布的 buildSrc Gradle 插件

java - 嵌入式 Jetty : how to use a . war 包含在 Jetty 启动的 .jar 中?