如何为Gradle项目生成类路径?

我有一个包含多个包的gradle项目。 构建之后,每个包都在build / libs中生成jar文件。 外部jar依赖项被拉入〜/ .gradle。 我现在想从命令行本地运行具有适当类路径的服务。 为此,我正在编写一个构造类路径的脚本。 问题是脚本无法理解所有外部依赖项,因此无法构造类路径。 有没有办法让gradle帮助解决这个问题? 理想情况下,我想在构建结束时将所有依赖项转储到一个文件夹中。

首先,如果可以,我建议使用应用程序插件 ,因为它已经解决了这个问题。

如果您想自己将类路径转储到文件中,最简单的方法是:

task writeClasspath << { buildDir.mkdirs() new File(buildDir, "classpath.txt").text = configurations.runtime.asPath + "\n" } 

如果要将类路径上的所有库实际复制到目录中,可以执行以下操作:

 task copyDependencies(type: Copy) { from configurations.runtime into new File(buildDir, "dependencies") } 

你可以在你的构建脚本中尝试这样的事情:

 // add an action to the build task that creates a startup shell script build << { File script = file('start.sh') script.withPrintWriter { it.println '#!/bin/sh' it.println "java -cp ${getRuntimeClasspath()} com.example.Main \"\$@\"" } // make it executable ant.chmod(file: script.absolutePath, perm: 'u+x') } String getRuntimeClasspath() { sourceSets.main.runtimeClasspath.collect { it.absolutePath }.join(':') }