java - 如何获取 Gradle Artifact 转换的输出?

标签 java gradle java-module artifact

Gradle 有 a sample展示如何使用自定义插件将遗留 JAR 转换为 Java 9+ 模块。我已将其改编到我自己的构建中,现在我想将生成的模块与 JLink 一起使用来生成自定义 JRE 镜像。但是,我不知道如何在自定义 jlink 任务中获取每个生成的 Artifact 的路径。 Gradle 是否将 Artifact 转换的结果添加为某个地方的依赖项?

最佳答案

我终于明白了。至少对于 Gradle 团队提供的示例,转换后的 Artifact 成为 runtimeClasspath 配置的一部分。这是我构建模块路径的方法:

def javaHome = System.getProperty("java.home")
def modulePath = ["libs", [javaHome, "jmods"].join(File.separator)]
project.configurations.runtimeClasspath.each { f->
    if (!modulePath.contains(f.absolutePath)) {
        modulePath.add(f.absoluteFile.parent)
    }
}

关于java - 如何获取 Gradle Artifact 转换的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61963401/

相关文章:

java - 如何在不使用for循环的情况下将ByteArray中的数据添加到链表中?

java - '->'(箭头)在gradle的依赖图中是什么意思?

Android:为单元和功能测试设置项目

android - 使用 Android Studio 3.X.X,将本地 .AAR 文件添加到 Gradle 构建不起作用

java - 什么是非法反射访问?

java - 列出Java9中所有必需的模块?

java - 如何在 Java 中为所有单选组中的所有单选按钮设置文本颜色

java - Tomcat 中的外部 Web 应用程序配置

java - 无法转换为类 - 它们位于加载程序 'app' 的未命名模块中

java - Java中命名对象的最佳实践