gpt4 book ai didi

plugins - 如何使用 Gradle Distribution 插件挑选 ZIP 内容?

转载 作者:行者123 更新时间:2023-12-02 21:07:45 28 4
gpt4 key购买 nike

我的 Gradle 构建当前在项目根目录的 build 目录下生成以下目录结构:

myapp/
src/
build.gradle
build/
docs/
groovydoc/* (all Groovydocs)
libs/
myapp-SNAPSHOT.jar
myapp-SNAPSHOT-sources.jar
reports/
codenarc/
main.html
test-results/* (JUnit test results)

我想添加 distribution plugin (或者任何能够实现我的目标的东西,真的)让 Gradle 生成具有以下目录结构的 ZIP 文件:

myapp-SNAPSHOT-buildreport.zip/
tests/
(JUnit tests from build/test-results above)
reports/
main.html (CodeNarc report from build/reports/codenarc above)
api/
(Groovydocs from build/docs above)
source/
myapp-SNAPSHOT-sources.jar (from build/libs above)
bin/
myapp-SNAPSHOT.jar (from build/libs above)

阅读插件的文档后,我不知道如何配置它来满足这些需求。很明显,我需要运行 gradle distZip,但至于如何实际配置它以生成所需的目录结构,它似乎没有提供任何文档/示例。有什么想法吗?

注意:JAR 的版本显然是 SNAPSHOT,并使用 -Pversion=SNAPSHOT 命令行参数传递到 Gradle 构建中.

最佳答案

Gradle Distribution plugin 自动具有默认值(问题是文档没有告诉我们默认值,但 Gradle 项目默认结构是假设的),因此如果您的 Gradle 项目相当简单并且已经使用 src/main/groovysrc/main/java,您通常只需要...

使用 CopySpec 反转模式将 into{} (创建一个目录)包含在 from{} 的内容中,而不是相反,如下所示:

apply plugin: 'groovy'
apply plugin: 'eclipse'
apply plugin: 'application'

distributions {
main {
baseName= 'vz_sde_dm'
contents {
into('bin/config') {
from 'config'
}
into('lib/samples') {
from 'samples'
}
}
}
}

请注意,我不需要为我的 contents{} 定义 from{},而只需为 into{}s 定义,这是因为我我已经使用默认的 Gradle Groovy 项目布局,并且只在 Eclipse 中的项目下添加了 2 个额外的文件夹(configsamples),但需要将这 2 个文件夹放置到稍微不同的位置我的发行版的层次结构与常规构建文件夹布局相比。

关于plugins - 如何使用 Gradle Distribution 插件挑选 ZIP 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25951047/

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