【发布时间】:2016-03-14 18:12:11
【问题描述】:
我正在尝试在我的项目中使用 artifactoryPublish。
我想发布一个xml文件到artifactory,发现我可以很高兴的将以下内容添加到gradle中
publishing.publications {
filexml(MavenPublication) {
artifact "/tmp/file.xml"
setArtifactId('file.xml')
version 1
groupId 'mygroup.test'
}
}
artifactoryPublish {
publications ('filexml')
}
这很好用。如果 /tmp/file.xml 存在。
但是,如果文件不存在,则失败..
但是我有一个任务是其中一个操作将创建文件
类似
task createFile {
doLast {
do.work.to.create.file
}
}
但似乎 publishing.publications 正在读取构建中的信息,而不是等待任务完成文件的创建。 没有办法告诉 publishing.publications 等到其他任务完成其操作之后。
我的问题是,如果运行 createFile 任务,我只想发布这个工件
gradle createFile --> publish to artifactory
gradle someothertask --> don't publish
问题是,当我运行 gradle someothertask 那么文件 /tmp/file.xml 不存在,并且 artifactoryPublish 失败,因为它找不到文件。 我也不想拥有 artifactoryPublish.dependsOn createFile 因为这使得 createFile 每次都运行。
【问题讨论】:
-
为什么运行其他任务会使 artifactoryPublish 运行?
标签: gradle artifactory