gradle - 创建文件后gradle出版物

标签 gradle artifactory

我正在尝试在我的项目中使用artifactoryPublish。

我想将xml文件发布到 Artifact ,发现可以愉快地将以下内容添加到gradle

publishing.publications {

    filexml(MavenPublication) {
        artifact "/tmp/file.xml"
        setArtifactId('file.xml')
        version 1
        groupId 'mygroup.test'
    }
}
artifactoryPublish {
   publications ('filexml')      
}

如果/tmp/file.xml存在,则可以正常工作。

但是,如果文件不存在,则会失败。

但是我有一个任务,其中一个 Action 将创建文件

就像是
task createFile {

  doLast {
   do.work.to.create.file
  }
}

但是似乎publishing.publications正在读取构造中的信息,而不是等待任务完成文件的创建。
没有办法告诉publishing.publications等到另一个任务完成其 Action 之后再进行操作。

我的问题是,如果运行createFile任务,我只想发布此 Artifact 项目
gradle createFile     --> publish to artifactory
gradle someothertask  --> don't publish

问题是,当我运行gradle someothertask
则文件/tmp/file.xml不存在,artifactoryPublish因找不到文件而失败。
我也不想有artifactoryPublish.dependsOn createFile
因为那样会使createFile每次运行。

最佳答案

您可以在gradle中添加任务依赖项。如果添加:

artifactoryPublish.dependsOn('createFile')

到build.gradle的根级别,它将确保在执行artifactoryPublish之前始终调用createFile任务,如果我正确地阅读了您的问题,它将确保在调用发布之前该文件始终可用。

关于gradle - 创建文件后gradle出版物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35994947/

相关文章:

gradle - Spring 靴gradle薄 jar MavenCapsule

android - Gradle 版本 4.6 - 设置输出文件名时不支持绝对路径

android - 在根项目 buildscript 中使用复合构建中的 Gradle 插件

android - 如何使用 artifactoryPublish 发布发布和调试 Artifact

maven - Gradle 可以将不同的 Artifact 上传到不同的 Maven 存储库吗?

maven - Grails 2.3.6缺少 repo 问题

artifactory - 如何从 GitLab CI 将构建发布到 Artifactory?

android - Gradle Kotlin DSL : Define Android build tools version in unique place

android - 使用 Jenkins 构建 Android 项目时出现问题(未找到任务)

maven - 如何使用 maven 从 Ivy 存储库下载 Artifact