我有一个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")
}
我将感谢所有建议。感谢。
答案 0 :(得分:4)
不确定NAR是什么,但我已经发布了具有以下配置的自定义非JAR工件:
定义您的工件。它可以是ZIP,JAR或TAR:
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。