Как получить текущие зависимости в скрипте Grails 3.2
контекст
Я создал скрипт Grails 3.2.11 с помощью следующей команды:
grails create-script script-test
Приведенная выше команда сгенерировала файл: script-test.groovy
,
Затем мне нужно проверить, присутствует ли зависимость jar-файла в текущем проекте grails.
На Grails 2.4 вы можете сделать это с grailsSettings.runtimeDependencies
вызов:
def verifyJarDependency(String dependencyName) {
//Gets all Grails Application dependencies.
def dependenciesInstance = grailsSettings.runtimeDependencies
//Defines the result variable
def result = false
//Adds references to all classes used in Grails Application.
dependenciesInstance?.each { dependencyFile ->
//Gets the file name
String fileName = dependencyFile.name
//Verifies if the actual file contains the Dependency file string
if (fileName.contains(dependencyName)) {
//There is a Jar file with the Dependency string.
println "The Dependency file found is: $dependencyFile"
result = true
}
}
//If there is no Dependency jar file it returns false.
return result
}
Например, если вы выполняете следующий фрагмент кода внутри файла скрипта Grails 2.4:
target(buildPlugin: "Retrieves all the jar files which this instance is using") {
//Gets all Grails Application dependencies.
def dependenciesInstance = grailsSettings.runtimeDependencies
dependenciesInstance?.each { dependencyFile ->
//There is a Jar file with the Dependency string.
println dependencyFile
}
}
setDefaultTarget(buildPlugin)
Вы получите вывод, как следующий:
/home/username/.sdkman/candidates/grails/2.4.3/lib/org.grails/grails-datastore-simple/jars/grails-datastore-simple-3.1.2.RELEASE.jar
/home/username/.sdkman/candidates/grails/2.4.3/lib/org.grails/grails-datastore-gorm/jars/grails-datastore-gorm-3.1.2.RELEASE.jar
/home/username/.sdkman/candidates/grails/2.4.3/dist/grails-plugin-converters-2.4.3.jar
/home/username/.sdkman/candidates/grails/2.4.3/dist/grails-plugin-mimetypes-2.4.3.jar
/home/username/.sdkman/candidates/grails/2.4.3/lib/com.h2database/h2/jars/h2-1.3.176.jar
/home/username/.sdkman/candidates/grails/2.4.3/lib/log4j/log4j/jars/log4j-1.2.17.jar
/home/username/.sdkman/candidates/grails/2.4.3/dist/grails-resources-2.4.3.jar
Эта информация будет использована позже для Proguard, чтобы скрыть файл JAR.
Вопрос
Как я могу получить текущие зависимости проекта Grails 3.2 внутри собственного скрипта?
1 ответ
Вы можете выполнить "зависимости gradle" в пользовательском скрипте:
description "Project dependencies", "grails list-dependencies"
println gradle.dependencies()
и разобрать вывод