java - 在 gradle 构建中将特定类包含在 jar 存档中

标签 java gradle

我有一个关于 gradle java 项目的新手问题。我希望将其输出工件 jar 配置为仅包含我项目中的某些类。我将所需的类包含在一个文件中,例如作为单独任务的一部分生成的 classes.txt。应该如何配置 gradle 构建的 jar 任务才能做到这一点。到目前为止,这是我尝试过的:

jar {
    // reset actions
    actions = []
    copy {
        def dependentClasses = file("classes.txt")
        if (dependentClasses.exists()) {
            dependentClasses.eachLine { include it }
        }

        from sourceSets.main.output
        includeEmptyDirs = false
        into "build/tmp/jar" //Some temporary location
    }
    // How to zip the contents?
}

对于这个可能幼稚的问题,我深表歉意,但我并没有遇到其他解决方案。

谢谢!

最佳答案

可以通过以下方式实现:

apply plugin: 'java'

jar {
   def excluded = project.file('classes.txt').readLines()

   exclude { f ->
      excluded.any { e -> f.path.replaceAll(File.separator, '.').contains(e) }
   }
}

可以找到Demo here , Lol1.class 将被排除。

关于java - 在 gradle 构建中将特定类包含在 jar 存档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081741/

相关文章:

java - 通过控制台 Java 获取输入

java - 如何使用 JNI 将图像作为结构参数传递给 libfprint 的 C 函数

java - JPanel 图像和组件

java - 为什么 getElementsByClass 在 jsoup 中不起作用?

java - 在 ThreadPoolExecutor 中设置 allowCoreThreadTimeOut() 是一个好习惯吗?

java - Gradle:如何通过gradle执行git pull?

android - Gradle - Artifact : ResolvedArtifact 的空提取文件夹

gradle - 如何使用 Artifactory Gradle 插件为构建信息设置用户名/密码?

intellij-idea - 如何创建一个使用 Gradle 构建的 Kotlin 项目?

java - 将 java 项目转换为 scala 项目 (Intellij)