This question already has an answer here:
Publishing non-jar files in gradle
(1个答案)
3年前关闭。
我有一个Gradle项目,该项目使用
现在,我想使用
我设法做到这一点的唯一方法是显式定义文件路径,但我想将其用作最后的手段。
我将不胜感激所有建议。谢谢。 定义您的 Artifact 。它可以是ZIP,JAR或TAR:
配置发布:
请注意,
我相信,就您而言,
然后,您可以在Gradle Artifactory plugin中使用该出版物:
有许多示例可用here。
(1个答案)
3年前关闭。
我有一个Gradle项目,该项目使用
de.fanero.gradle.plugin.nar
插件(https://github.com/sponiro/gradle-nar-plugin)构建Nifi NAR文件。buildscript {
repositories {
mavenCentral()
maven { url 'http://dl.bintray.com/sponiro/gradle-plugins' }
}
dependencies {
classpath group: 'de.fanero.gradle.plugin.nar', name: 'gradle-nar-plugin', version: '0.1'
}
}
apply plugin: 'de.fanero.gradle.plugin.nar'
apply plugin: 'java'
dependencies {
...
}
现在,我想使用
com.jfrog.artifactory
插件将NAR文件上传到Jfrog Artifactory。我正在努力解决出版物的定义。我尝试执行类似于以下定义的操作,但失败了。publishing {
publications {
mavenJava(MavenPublication) {
from project.components.java
}
}
}
我设法做到这一点的唯一方法是显式定义文件路径,但我想将其用作最后的手段。
nar(MavenPublication) {
artifact file("build/libs/my-custom-nar-1.0-SNAPSHOT.nar")
}
我将不胜感激所有建议。谢谢。
最佳答案
不确定NAR是什么,但是我已经发布了具有以下配置的自定义非JAR Artifact :
task deployableZIP(type: Zip) {
from 'deployable'
baseName = 'deployable'
destinationDir = buildDir
}
publishing {
publications {
main(MavenPublication) {
artifact source: deployableZIP, extension: 'zip'
}
}
}
请注意,
publications
块引用了deployableZIP
任务本身:没有引号,只是一个任务引用。我相信,就您而言,
nar
任务已经由插件创建,因此您需要做的是:publishing {
publications {
main(MavenPublication) {
artifact source: nar, extension: 'nar'
}
}
}
然后,您可以在Gradle Artifactory plugin中使用该出版物:
artifactory {
contextUrl = 'http://artifacto.ry'
publish {
repository {
repoKey = 'libs-snapshot-local'
username = 'darth_vader'
password = 'padme'
}
defaults {
publications('main')
publishArtifacts = true
}
}
}
有许多示例可用here。