在gradle global中建立Artifactory

时间:2018-10-11 11:54:38

标签: gradle publish artifactory

目前,我有一个项目正在我们的工件中部署工件。对于该项目,一切都设置得很完美,并且可以正常工作。

我只是想知道是否有可能在gradle中全局设置整个工件配置,这样我就不必为每个项目编写工件{...}了。

2 个答案:

答案 0 :(得分:0)

您只需编写自己的 Gradle插件即可:

  • 应用 artifactory插件和其他相关插件,例如 maven-publish
  • artifactory扩展属性提供默认值,例如contextUrlrepoKey,凭据等...

然后,您的不同项目将只需要应用自定义插件,并仅提供特定于项目的配置(例如,将以publishing扩展名发布的人工制品的配置)

编辑,还有其他方法可以实现,但这取决于您所说的“全局gradle”:

  • 全局到您自己的计算机?那么您可以创建一个包含{em> artifactory插件配置部分
  • 的用户InitScript
  • 您的团队/公司的全球性?那么您可能需要实现一个自定义插件,并且可能将此插件包含到自定义的 gradle wrapper 发行版中(请参见example here

EDIT2 如果您只想设置同一多项目构建的不同子项目的 artifactory插件配置,那么最简单的解决方案是定义此配置根项目构建脚本的subprojects块中的配置:

subprojects {
    apply plugin: "com.jfrog.artifactory"

    artifactory {
        publish {
            contextUrl = '<repo url>'
            repository {
                repoKey = "<repo name>"
                username = "user"
                password = "pass"
            }
        }
    }
}

答案 1 :(得分:0)

您可以维护一个文件,例如build_dependency.gradle并为所有项目定义任务

 allprojects
 {
 //task common for all the project
 }

subprojects
{
//task for subprojects
}

或在依赖文件中指定项目类型,例如ext.warProject = 1并在build_dependency.gradle中将其引用为

if(project.hasProperty('warProject '))
 {
  //task here
 }

并像apply from: "$rootDir/path_to_file/build_dependency.gradle"一样在build.gradle中使用此文件 “ $ rootDir / path_to_dependenccy_file”`

相关问题