저는 Gradle과 Artifactory의 초보자이며 Artifactory에 JAR 파일을 업로드하고 싶습니다.
내 build.gradle
파일 은 다음과 같습니다 .
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'maven'
apply plugin: 'artifactory-publish'
groupId = 'myGroup'
version = '1.0'
def artifactId = projectDir.name
def versionNumber = version
artifactory {
contextUrl = 'http://path.to.artifactory' // base artifactory url
publish {
repository {
repoKey = 'libs-releases' // Artifactory repository key to publish to
username = 'publisher' // publisher user name
password = '********' // publisher password
maven = true
}
}
}
artifactoryPublish {
dependsOn jar
}
artifactoryPublish
작업을 실행하면 아래와 같이 빌드가 성공합니다.
> gradle artifactoryPublish --stacktrace
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:artifactoryPublish
Deploying build info to: http://path.to.artifactory/api/build
BUILD SUCCESSFUL
Total time: 7.387 secs
그러나 빌드 정보를 제외하고 Artifactory로 전송되는 것은 없습니다.
어떤 도움이라도 대단히 감사하겠습니다.
편집하다:
JBaruch가 언급했듯이
apply plugin: 'maven-publish'
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
아티팩트 작업에 대한 기본 섹션
defaults {
publications ('mavenJava')
}
이제 작동합니다.
감사
답변
당신이 어떤이없는 때문이다 publications
. artifactory-publish
플러그인이 작동 maven-publish
플러그인 및 업로드 publications
.
이전 maven 플러그인으로 작업 하려면 artifactory
플러그인 이 필요 하지 않습니다 artifactory-publish
.
공식 문서의 “Working with Gradle”페이지에서 개요 부분을 살펴보십시오 .
답변
나는이 일을했다. 실제로 이미 생성 된 항아리를 사용하고 있었으므로 아래 코드를 사용하여 업로드 할 항아리를 지정하고 있습니다.
publishing {
publications {
mavenJava(MavenPublication) {
// from components.java
artifact file("path/jar-1.0.0.jar")
}
}
}
답변
플러그인이 필요합니다.
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'
프로젝트를 빌드하고 아티 팩토리에서 jar를 검색하려면 다음을 수행하십시오.
buildscript {
repositories {
maven {
url 'http://[IP]:[PORT]/artifactory/gradle-dev'
credentials {
username = "${artifactory_user}"
password = "${artifactory_password}"
}
}
mavenCentral()
}
dependencies { classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.5.4" }
}
repositories {
mavenCentral()
mavenLocal()
}
아티 팩토리 구성 :
artifactory {
contextUrl = "${artifactory_contextUrl}"
publish {
repository {
repoKey = 'gradle-dev-local'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
defaults {
publications('mavenJava')
}
publishBuildInfo = true
publishArtifacts = true
publishPom = true
}
resolve {
repository {
repoKey = 'gradle-dev'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
}
}
및 게시 :
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
gradle.properties
artifactory_user=publisher
artifactory_password=*****
artifactory_contextUrl=http://IP:PORT/artifactory
그래서 모든 것이 간단합니다. 항아리를 업로드하려면 :
gradle artifactoryPublish
답변
이것은 명령으로 나를 위해 일한 것입니다. gradle clean build publish
apply plugin: 'maven-publish'
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'maven'
group = 'com.mine'
version = '1.0.1-SNAPSHOT'
repositories{
mavenCentral()
}
dependencies {
compile gradleApi()
compile localGroovy()
compile 'com.google.guava:guava:27.0-jre'
testCompile 'junit:junit:4.12'
//compile 'org.apache.commons:commons-lang3:3.8.1'
}
publishing {
repositories {
maven {
url = 'https://artifactory.mine.net/artifactory/my-snapshots-maven'
credentials {
username 'user'
password 'password'
}
}
}
publications{
mavenJava(MavenPublication) {
from components.java
}
}
}