gpt4 book ai didi

build - Gradle:如何从非 java 项目发布 zip 并在 java 项目中使用它?

转载 作者:行者123 更新时间:2023-12-03 06:32:04 25 4
gpt4 key购买 nike

我有一个多项目设置。我创建了一个非 java 项目,其工件是一个 zip 文件,我将在另一个项目中解压缩该文件。所以想法如下

my-non-java-project
build.gradle
------------
apply plugin: 'base'

task doZip(type:Zip) { ... }

task build(dependsOn: doZip) << {
}

artifacts {
archives doZip
}


some-java-project
build.gradle
------------
apply plugin: 'war'
configurations {
includeContent // This is a custom configuration
}
dependency {
includeContent project(':my-non-java-project')
}

task expandContent(type:Copy) {
// Here is where I would like get hold of the all the files
// belonging to the 'includeContent' configuration
// But this is always turning out to be empty. Not sure how do I publish
// non-java content to the local repository (as understood by groovy)
}

所以,我的问题是,如何将非 java 项目的工件发布到 groovy 的内部存储库,以便我可以在另一个基于 java 的项目中获取它?

最佳答案

不太确定您想要什么,但这里有一种快速而肮脏的方法来访问 FileCollection :my-non-java-project:doZip 任务输出:

project(":my-non-java-project").tasks.getByName("doZip").outputs.files

请注意archives配置is added by the Java plugin ,而不是 Base 插件。但您仍然可以在 my-non-java-project 中定义自定义配置,并使用 OP 中的代码将工件添加到其中:

//in my-non-java-project/build.gradle
configurations {
archives
}
artifacts {
archives doZip
}

然后您可以通过配置访问任务输出,如下所示(再次快速而肮脏):

//in some-java-project/build.gradle
project(":my-non-java-project").configurations.archives.artifacts.files

请注意,您可以使用 zipTree 扩展 zip 文件的内容.

如果您需要实际发布 my-non-java-project 生成的 zip,您可以 read about that here .

关于build - Gradle:如何从非 java 项目发布 zip 并在 java 项目中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com