gpt4 book ai didi

github - 如何从Gradle Build中列出所有输出/生成文件?

转载 作者:行者123 更新时间:2023-12-03 03:13:18 42 4
gpt4 key购买 nike

目前,我正在使用以下命令生成输出文件的列表,这些输出文件是我想要Github发布的另一个插件的。

[
"${buildDir}/libs/${project.name}-${project.version}.jar",
"${buildDir}/libs/${project.name}-${project.version}-javadoc.jar",
"${buildDir}/libs/${project.name}-${project.version}-sources.jar"
]

我对此并不十分满意,因为我正在手动指定每种文件类型(doc,source,class)。我正在寻求使它更通用,以便可以对任何可能具有或多或少输出并且也可能不在默认位置并且某些输出甚至可能不是Java输出的项目进行任何修改而重用。即更改输出位置后,要在脚本中其他位置运行或插入的任务不应破坏脚本的这一部分,并且无需编辑即可重用。 问题是如何像上面的String列表那样获取所有输出的列表。

更详细的代码片段:

...
plugins {
id 'co.riiid.gradle' version '0.4.2'
}

...
ext {
org = 'MicroTrader'
repo = org + '/' + project.name
releaseNotesFile = 'RELEASE_NOTES.md'
host = 'github.com'
hostUrl = 'https://' + host + '/'
orgUrl = hostUrl + org
websiteUrl = hostUrl + repo
vcsUrl = websiteUrl + '.git'
scmUrl = 'scm:git@' + host + ':' + repo + '.git'
issueTrackerUrl = websiteUrl + '/issues'
ossrhUsername = ((project.hasProperty('ossrhUsername') ? ossrhUsername : System.getenv('OSSRH_USER')) ?: System.getProperty('ossrh.user')) ?: ' '
ossrhPassword = ((project.hasProperty('ossrhPassword') ? ossrhPassword : System.getenv('OSSRH_PASSWORD')) ?: System.getProperty('ossrh.password')) ?: ' '
bintray_user = ((project.hasProperty('bintray_user') ? bintray_user : System.getenv('BINTRAY_USER')) ?: System.getProperty('bintray.user')) ?: ' '
bintray_api_key = ((project.hasProperty('bintray_api_key') ? bintray_api_key : System.getenv('BINTRAY_KEY')) ?: System.getProperty('bintray.apikey')) ?: ' '
artifactory_user = ((project.hasProperty('artifactory_user') ? artifactory_user : System.getenv('ARTIFACTORY_USER')) ?: System.getProperty('artifactory.user')) ?: ' '
artifactory_password = ((project.hasProperty('artifactory_password') ? artifactory_password : System.getenv('ARTIFACTORY_PASSWORD')) ?: System.getProperty('artifactory.password')) ?: ' '
github_api_key = ((project.hasProperty('github_api_key') ? github_api_key : System.getenv('GITHUB_KEY')) ?: System.getProperty('github.apikey')) ?: ' '
}

...
github {
owner = project.org
repo = project.name
token = project.github_api_key
tagName = project.version
targetCommitish = 'master'
name = 'v' + project.version
body = Files.exists(Paths.get('' + projectDir + '/' + releaseNotesFile)) ?
new File('' + projectDir + '/' + releaseNotesFile).text :
(Files.exists(Paths.get('' + baseDir + '/' + releaseNotesFile)) ?
new File('' + baseDir + '/' + releaseNotesFile).text : '')
assets = [
"${buildDir}/libs/${project.name}-${project.version}.jar",
"${buildDir}/libs/${project.name}-${project.version}-javadoc.jar",
"${buildDir}/libs/${project.name}-${project.version}-sources.jar"
]
}

...

最佳答案

尝试阅读构建中用于生成 Artifact 的所有任务的outputs属性:
project(':my-sub-project').jar.outputs
另一个选择是使用所有子项目中的archives配置:
project(':my-sub-project').configurations.archives.allArtifacts

关于github - 如何从Gradle Build中列出所有输出/生成文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39423460/

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