Как вы можете построить сборку gradle дважды, слегка изменяя исходный код, не создавая дублирования кода?
Итак, у меня есть две сборки, первая для облачной службы, вторая для помещения. Основное различие между ними - exclude **cloud**
или exclude **onprem**
внутри build.gradle
. Облачный сервис, очевидно, будет exclude **onprem**
файлов. Кроме того, результат файла Docker будет иметь другое имя.
Проблема в том, что я не уверен, как реорганизовать этот проект без копирования / дублирования src
$ tree credit-service/webapp -L 2
credit-service/webapp
├── build.gradle
├── docker
│ ├── Dockerfile
│ ├── config.yaml
│ └── terms-of-use
└── src
├── main
└── test
$ tree credit-service/webapp-onprem -L 2
credit-service/webapp-onprem
├── build.gradle
└── docker
├── Dockerfile
├── config.yaml
└── terms-of-use
Также внутри сборки.gradle У меня есть эта строка ниже, и есть ограничение, запрещающее более одного объявления задачи докера.
apply plugin: 'com.palantir.docker'
docker {
name SomeGradleVariable + project.version
}
Итак, как перепаковать код дважды, используя gradle, не дублируя источник.