|
|
独立的凉面 · 認識 Android Studio | ...· 2 周前 · |
|
|
儒雅的火腿肠 · Android-Gradle笔记 | 苍耳的博客· 2 周前 · |
|
|
爱跑步的电影票 · Using Gradle for CI - ...· 1 周前 · |
|
|
不要命的铁链 · Proxy Error when ...· 1 周前 · |
|
|
睡不着的红茶 · SpringBoot项目中高效读取resou ...· 2 天前 · |
|
|
苦恼的小蝌蚪 · GitHub - ...· 2 周前 · |
|
|
粗眉毛的风衣 · 粤康码变蓝了?24小时核酸“蓝码”新皮肤上线· 11 月前 · |
|
|
风度翩翩的创口贴 · 中国政法大学国际法学院涉外法律高级人才培训班 ...· 1 年前 · |
|
|
豪情万千的芒果 · 3D区【斗罗玉传】69集,片段之老王调戏被打 ...· 1 年前 · |
|
|
飞翔的鼠标垫 · 文件传输助手不小心删了怎么恢复?来get新妙 ...· 1 年前 · |
我是Gradle和Artifactory的新手,我想上传一个JAR文件到Artifactory。
这是我的
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
: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
}
和artifactory任务的默认值部分
defaults {
publications ('mavenJava')
}
现在它起作用了。
谢谢
这是因为您没有任何
publications
。
artifactory-publish
plugin
与
maven-publish
plugin
一起工作,并上传
publications
。
如果你喜欢使用
the old maven plugin
,你需要的是
artifactory
plugin
,而不是
artifactory-publish
。
我把它弄好了。我实际上使用的是一个已经创建的jar,所以我使用下面的代码来指定要上传的jar:
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'
要构建项目并从artifactory检索jars:
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配置:
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
所以一切都很简单。如果你想上传你的jar:
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
}
这是我用Kotlin DSL (build.gradle.kts)为我的安卓库做的:
plugins {
id("maven-publish")
// ...
lateinit var sourcesArtifact: PublishArtifact
lateinit var javadocArtifact: PublishArtifact
tasks {
val sourcesJar by creating(Jar::class) {
archiveClassifier.set("sources")
from(android.sourceSets["main"].java.srcDirs)
val dokkaHtml by getting(org.jetbrains.dokka.gradle.DokkaTask::class)
val javadocJar by creating(Jar::class) {
dependsOn(dokkaHtml)
archiveClassifier.set("javadoc")
from(dokkaHtml.outputDirectory)
artifacts {
sourcesArtifact = archives(sourcesJar)
javadocArtifact = archives(javadocJar)
afterEvaluate {
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/mahozad/android-pie-chart")
credentials {
username = project.properties["github.username"] as String? ?: System.getenv("GITHUB_ACTOR") ?: ""
password = project.properties["github.token"] as String? ?: System.getenv("GITHUB_TOKEN") ?: ""
publications {
create<MavenPublication>("Release") {
// Applies the component for the release build variant (two artifacts: the aar and the sources)
from(components["release"])