首页 > 解决方案 > 无论如何要覆盖 jib 的“主要”源集吗?

问题描述

对于我的 java 插件,我使用的是非默认源集。如何告诉 jib 我的源文件在哪里?使用我的 gradle 文件,如下所示,jib 响应:

> Task :jib FAILED
No classes files were found - did you compile your project?

我看到 jib 默认为“main”作为源集名称 - 有没有办法覆盖它? https://github.com/GoogleContainerTools/jib/blob/master/jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/GradleProjectProperties.java#L96

apply plugin: "java-library"
apply plugin: "com.google.cloud.tools.jib"

sourceSets {
  custom {
    java {
      srcDirs = ["src"]
    }
  }
}

jib {
  to {
    image = "foo"
  }
}

如果我更改custommain上述内容,则可以正常工作。

标签: gradlejib

解决方案


该插件没有为您提供任何选项来指定要使用的源集。因此,您唯一的选择是确保将您的自定义源集添加到main

例如,假设您的自定义源集名为custom,类似于:

sourceSets {
    main {
        java {
            compileClasspath += sourceSets.custom.output
            runtimeClasspath += sourceSets.custom.output
        }
    }
}

推荐阅读