Настройка Artifactory в Gradle Global - PullRequest
0 голосов
/ 11 октября 2018

В настоящее время у меня есть проект, который развертывает артефакты в нашей артефакте.Для этого Проекта все настроено идеально, и оно работает.

Мне просто интересно, есть ли возможность настроить всю глобальную конфигурацию артефакта в gradle, чтобы мне не пришлось писать артефакт {...} материал для каждого проекта.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вы можете сохранить файл, скажем, 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
 }

и используйте этот файл в build.gradle как apply from: "$rootDir/path_to_file/build_dependency.gradle" "$ rootDir / path_to_dependenccy_file" `

0 голосов
/ 11 октября 2018

Вы можете просто написать свой собственный Gradle плагин , который будет отвечать за:

  • применение артефактного плагина и других связанных плагинов, таких как maven-publish
  • предоставляет значения по умолчанию для свойств расширения artifactory, таких как contextUrl, repoKey, учетные данные и т. Д. *

Тогда вашим разным проектам нужно будет просто применить свой пользовательский плагин и предоставить только специфичную для проекта конфигурацию (конфигурацию артефакта, который будет опубликован, например, в publishing расширение)

EDIT Есть и другие способы реализовать это, но это зависит от того, что вы подразумеваете под «глобальным в граде»:

  • глобальным для вашего собственного компьютера?тогда вы могли бы создать пользователя InitScript , который содержал бы плагин артефакта часть конфигурации
  • , глобальный для вашей команды / компании?тогда вам может понадобиться реализовать собственный плагин и, возможно, включить этот плагин в пользовательский дистрибутив gradle wrapper (см. пример здесь

EDIT2 Если вы просто хотите установить конфигурационный плагин для другого подпроекта одной и той же многопроектной сборки, то самым простым решением будет определить эту конфигурацию в блоке subprojects корневой проект скрипт сборки:

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

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