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

标签 github gradle build build.gradle release

目前,我正在使用以下命令生成输出文件的列表,这些输出文件是我想要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/

相关文章:

github - 可以在 ssh 中使用个人访问 token 进行 ci github 操作吗?

github - 是否有可能检查导入模块的使用情况?

macos - 如何使用 SSH 将 IntelliJ 连接到 GitHub

java - Gradle Jax-RS Mysql Jetty 项目无法正常工作

java - 如何阻止 jbossshrinkwrap 远程解决依赖关系?

Android Studio 显示密码验证失败错误

gradle - 如何在Gradle中重命名Maven存储库

java - NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE

winforms - 在 UppercuT code_drop 中包含 winforms 安装程序

visual-studio - VS 构建后事件