Как получить текущие зависимости в скрипте 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()

и разобрать вывод

Другие вопросы по тегам