我尝试使用gradle将工件发布到artifactory,但gradle不会识别artifactoryPublish()或artifactory()。我收到以下错误:
Could not find method artifactoryPublish() for arguments [build_9ujhxzionc580et0ezlx54vcs$_run_closure4@14af6c29] on root project 'uw-data-util' of type org.gradle.api.Project.
我的gradle版本3.5
这是我的 build.gradle :
apply plugin: "groovy"
apply plugin: "java"
apply plugin: "maven"
apply plugin: "eclipse"
apply plugin: "idea"
apply plugin: 'application'
apply plugin: 'maven-publish'
repositories {
mavenCentral()
mavenLocal()
jcenter()
maven { url "https://artifactory.internal.com/artifactory/libs-release/"
credentials { username = project.hasProperty('artifactory_user') ? project.artifactory_user : System.getenv()['ARTIFACTORY_USER']
password = project.hasProperty('artifactory_password') ? project.artifactory_password : System.getenv()['ARTIFACTORY_KEY']}
}
}
// In this section you declare the dependencies for your production and test code
dependencies {
compile group: 'org.testng', name: 'testng', version: '6.10'
compile group: 'org.apache.poi', name: 'poi', version: '3.15'
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.15'
//compile group: 'com.monitorjbl', name: 'xlsx-streamer', version: '1.1.0'
compile 'org.apache.commons:commons-configuration2:2.1.1'
compile 'commons-beanutils:commons-beanutils:1.9.3'
compile group: 'postgresql', name: 'postgresql', version: '9.1-901-1.jdbc4'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.7'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.7'
compile group: 'org.apache.commons', name: 'commons-exec', version: '1.3'
compile 'org.slf4j:slf4j-api:1.7.21'
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.1'
compile "org.jfrog.buildinfo:build-info-extractor-gradle:4.4.17"
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
artifactoryPublish {
publications(publishing.publications.mavenJava)
}
artifactory {
contextUrl = "https://artifactory.internal.com/artifactory/libs-release-local/"
publish {
repository {
repoKey = "libs-release-local"
username = project.hasProperty('artifactory_user') ? project.artifactory_user : System.getenv()['ARTIFACTORY_USER']
password = project.hasProperty('artifactory_password') ? project.artifactory_password : System.getenv()['ARTIFACTORY_KEY']
}
defaults {
publications('mavenJava')
publishArtifacts = true
}
}
resolve {
repoKey = 'libs-release-local'
}
}
jar {
from {
(configurations.runtime).collect {
it.isDirectory() ? it : zipTree(it)
}
}
manifest {
attributes("Main-Class": "com.internal.qa.automation.file.util.DbRunUtil" )
}
}
group = 'com.internal'
install {
repositories.mavenInstaller {
pom.version = '1.0'
pom.artifactId = 'uw-data-util'
pom.packaging = 'jar'
}
}
test {
def suiteXml = System.getProperty("SUITE")
systemProperty "ENV_NAME", System.getProperty("ENV_NAME")
useTestNG {
if(suiteXml == "profile-smoke"){
suites "src/test/resources/testng/groups/smoke/${suiteXml}.xml"
}
testLogging {
showStandardStreams = true
exceptionFormat "full"
events "started", "passed", "skipped", "failed", "standardOut", "standardError"
}
}
}
我显然遗漏了文档中的内容。
答案 0 :(得分:1)
原来我要做的就是:
plugins {
id "com.jfrog.artifactory" version "4.4.18"
}
.....
apply plugin: "com.jfrog.artifactory"
因为我使用的是gradle版本2.1 +
答案 1 :(得分:1)
我解决了这个问题,又添加了一个插件:
plugins {
// Apply the java-library plugin to add support for Java Library
id 'java-library'
id "com.jfrog.artifactory" version "4.16.1"
}
apply plugin: "com.jfrog.artifactory"
apply plugin: 'maven-publish'
我使用gradle 6.2
答案 2 :(得分:0)
尝试使用旧的gradle方法:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:latest.release"
}
}
...
apply plugin: "com.jfrog.artifactory"