用于获取jar依赖项列表的Gradle任务

f0ofjuux  于 2022-12-29  发布在  其他
关注(0)|答案(2)|浏览(140)

是否有任何gradle任务可用于获取运行时依赖项列表。最好是内置任务或来自“应用程序”插件的任务。如果不可能,请使用另一个gradle插件。
我只需要从命令行手动运行我的应用程序的主类。

java -cp STRING_OF_ALL_JAR_DEPENDENCIES my.package.Main

STRING_OF_ALL_JAR_DEPENDENCIES还应该包括我的项目jar。
该任务应该以适当的格式生成STRING_OF_ALL_JAR_DEPENDENCIES,以便在--classpath/-cp开关中使用,但是也可能生成其他一些格式,在使用之前需要进行一些琐碎的处理。

vcudknz3

vcudknz31#

尝试

task runCP() {
    doLast {
        def runList = configurations.runtimeClasspath.asList()
        println(runList.join(File.pathSeparator))
    }
}
fkaflof6

fkaflof62#

考虑应用程序插件中的startScripts任务,如下所述。
例如,在this project中,我们有以下依赖项:

dependencies {
    implementation 'com.codepoetics:protonpack:1.16'
    implementation 'com.google.guava:guava:24.1-jre'
    implementation 'org.apache.commons:commons-lang3:3.10'
    implementation 'org.springframework:spring-context:5.2.5.RELEASE'

    testImplementation 'junit:junit:4.12'
}

如果我们输入./gradlew startScripts,那么./build/scripts/WarO_Java_17文件包含以下内容(添加了新行):

CLASSPATH=$APP_HOME/lib/WarO_Java_17.jar
:$APP_HOME/lib/protonpack-1.16.jar
:$APP_HOME/lib/guava-24.1-jre.jar
:$APP_HOME/lib/commons-lang3-3.10.jar
:$APP_HOME/lib/spring-context-5.2.5.RELEASE.jar
:$APP_HOME/lib/jsr305-1.3.9.jar
:$APP_HOME/lib/checker-compat-qual-2.0.0.jar
:$APP_HOME/lib/error_prone_annotations-2.1.3.jar
:$APP_HOME/lib/j2objc-annotations-1.1.jar
:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar
:$APP_HOME/lib/spring-aop-5.2.5.RELEASE.jar
:$APP_HOME/lib/spring-beans-5.2.5.RELEASE.jar
:$APP_HOME/lib/spring-expression-5.2.5.RELEASE.jar
:$APP_HOME/lib/spring-core-5.2.5.RELEASE.jar
:$APP_HOME/lib/spring-jcl-5.2.5.RELEASE.jar

./build/scripts/WarO_Java_17.bat中有一个对应的Windows文件

相关问题