【问题标题】:Context URL cannot be empty - Artifactory Gradle Plugin上下文 URL 不能为空 - Artifactory Gradle 插件
【发布时间】:2012-04-04 18:41:56
【问题描述】:

我正在尝试使用 Artifactory Gradle 插件来发布到我的本地 Artifactory 实例。

我在 localhost:8081/artifactory 运行了最新版本(默认安装)。我可以通过网络浏览器访问来验证这一点。

但是,以我最简单的示例.. 我收到“找不到上下文 URL 错误

请注意,我已经指定了所有必需的 Artifactory 配置设置 -(如 Artifactory Gradle 网页上所示).. 包括上下文 URL。

buildscript {
  repositories{ maven { url 'http://repo.jfrog.org/artifactory/gradle-plugins' } }
  dependencies{ classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:2.0.12'}
}

apply plugin: 'artifactory'

artifactory {
  contextUrl = 'http://localhost:8081/artifactory'   //The base Artifactory URL if not overridden by the publisher/resolver
  publish {
    repository {
      repoKey = 'integration-libs'   //The Artifactory repository key to publish to
      username = 'admin'          //The publisher user name
      password = 'password'
    } 
  }
  resolve {
    repository {
      repoKey = 'libs-releases'  //The Artifactory (preferably virtual) repository key to resolve from
    }
  }
}

【问题讨论】:

  • 你使用哪个版本的 Gradle?
  • 另外,如果这可能是一个错误,您可以尝试在发布和解析部分指定上下文 URL 吗?
  • Gradle 的最新版本(里程碑 9).. 以及相应的工件插件。
  • 这对我来说很好,里程碑 9 和 1.0 最终版。如果我没有定义contextUrl,我收到的错误消息是“上下文 URL 不能为空”。此消息似乎与您的不同。您在 GitHub 或其他存储库上有完整的源代码吗?是单模块还是多模块项目?

标签: gradle artifactory


【解决方案1】:

这看起来像是一个奇怪的错误,我不确定是什么原因造成的。我在我的一些 gradle 构建文件中得到了它,但其他的似乎工作正常。 我通过在 publish 元素中再次定义 contextUrl 来修复它,所以你的脚本现在看起来像:

artifactory {
  contextUrl = 'http://localhost:8081/artifactory'   //The base Artifactory URL if not overridden by the publisher/resolver
  publish {
    contextUrl = 'http://localhost:8081/artifactory' // <- this is the fix
    repository {
      repoKey = 'integration-libs'   //The Artifactory repository key to publish to
      username = 'admin'          //The publisher user name
      password = 'password'
    } 
  }
  resolve {
    repository {
      repoKey = 'libs-releases'  //The Artifactory (preferably virtual) repository key to resolve from
    }
  }
}

您可能还必须在 resolve 元素中再次定义它。

【讨论】:

  • 好的,我意识到如果父项目包含工件配置并且您尝试在子项目中定义新的工件配置,则会发生这种情况。
  • 当您将工件构建粘贴到子构建中并且父级中没有工件配置时,似乎也会发生这种情况。似乎一个人只能将工件用于所有构建或不使用。
猜你喜欢
  • 2014-10-29
  • 1970-01-01
  • 2018-03-19
  • 1970-01-01
  • 2015-07-30
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 2014-12-18
相关资源
最近更新 更多