У меня есть 5 разных приложений в моем monorepo, build.gradle для каждого из этих приложений содержит почти идентичную задачу, которая наряду со скриптом загрузки отвечает за загрузку файлов, соответствующих нашему файловому серверу Jenkins.
мы можем назвать это task releaseBuilds()
Этот код находится в файле с именем artifactUploads.gradle
, этот файл также содержит собственный плагин с именем UploadPlugin
.Теперь я обеспокоен строкой System.out.println () в задаче.
apply plugin: UploadPlugin
task copyReleaseBuilds() {
doLast {
def dir = project.file('build/outputs/apk')
dir.eachFileRecurse(FILES) { file ->
if (file.getName().contains(".apk") && file.getName().contains("release")) {
System.out.println("uploading ${file.getName()}")
def rootDir = project.getRootDir().path
def filePath = file.path
def fileName = file.name.replace('app-', '')
exec {
workingDir rootDir
commandLine "./uploadBuild.sh", filePath, "$dirPath" + fileName
}.assertNormalExitValue()
}
}
}
}
class UploadPlugin implements Plugin<Project> {
void apply(Project project) {
//Create container instance for config object
//plugin stuff
NamedDomainObjectContainer<Config> configContainer =
project.container(Config)
project.extensions.add('directory', configContainer)
project.task('uploadConfig') << {
def uploadConfig = project.extensions.getByName('directory')
}
}
class Config{
String name
String dirPath
Config(final String name){
this.name = name
}
}
В файле build.gradle
для каждого из моих приложений / проектов.У меня есть строка
apply from: "${rootDir}/artifactUploads.gradle
вместе с каталогом
directory{
name{
dirPath = "hca/"
println "stuff"
}
}
- это некоторый объект, созданный в моем CustomPlugin.Теперь, когда я строю строку, println "Stuff"
выводится в журнал Gradle, однако я не могу найти никаких выводов консоли, которые помещаются в artifactUploads.gradle
, который содержит мой CustomPlugin и задачу, которую разделяют все мои приложения.
Насколько я понимаю, поскольку каждое из моих приложений build.gradle
имеет apply from: artifactUploads.gradle
, теперь каждое приложение должно запускать задачу copyReleaseBuilds()
с настраиваемым параметром dirPath
, который установлен в части DSLкаждое приложение build.gradle
.
Есть ли еще одна причина, по которой сборка не будет достигать этого System.out.println()
?Я вообще новичок в обучении, поэтому спасибо за вашу помощь