从自定义Gradle源集中创建包含类路径的JAR

时间:2019-07-05 13:30:37

标签: java gradle groovy jar

我有一个多项目,我需要能够使用 gradle 从特定子项目中运行一个类。我试图简单地设置我的自定义 sourceSets 并运行 JavaExec 类型的任务,但是遇到了一个非常具体的问题。问题是我的自定义源文件夹中有太多Java文件,结果 JavaExec 任务试图创建的类路径(每个Java类的绝对路径)对于 JavaExec 尝试调用的> cmd 命令。

我找到了一种解决方法,建议使用所有 .java 文件创建一个 jar 文件,并将其作为 classpath 传递给我的 JavaExec 任务。这样,命令可以保持简洁。我做了应该执行的任务,但是没有用。

这是我的自定义 sourceSets

sourceSets {
mySourceSet{
    java {
        srcDirs {
            'projectOne/src/main/java/'

  }}}}

这是我的任务,应该创建一个 jar ,但不会:

task launcherJar(type: Jar) {
manifest {
    attributes "Class-Path": sourceSets.mySourceSet.java.srcDirs.join(" ")}}

这是我的javaExec任务,应该使用.jar文件:

task task1(type: JavaExec) {
classpath = launcherJar.outputs.files
main = "com.package1.MyClass"

}

问题是- jar 文件为空。

我尝试使用“ 清单”属性进行各种操作,但是似乎没有任何效果。

我需要jar文件包含类路径,以便可以在 JavaExec 中使用它。

先谢谢您。

0 个答案:

没有答案