gpt4 book ai didi

java - artifactoryPublish 配置中发布部分的魔力

转载 作者:行者123 更新时间:2023-12-01 18:36:07 24 4
gpt4 key购买 nike

我在 build.gradle 配置中遇到了一些神奇的行为。我正在尝试为带有子项目的项目启用artifactoryPublish。我有以下结构根--子项目1--子项目2--常见

gradle版本6.0.1

案例1

在根级别,我使用以下部分构建了 gradle 文件

subprojects {
apply from: "$rootDir/gradle/artifactory.gradle"
}

在artifactory.gradle中

apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}

artifactory {
contextUrl = artifactoryUrl
publish {
repository {
repoKey = 'mvn-snapshot-local'
password = artifactoryPassword
username = artifactoryUser
}
defaults {
publications('mavenJava')
publishArtifacts = true
publishPom = true
}
}
}

当我运行artifactoryPublish时,它成功完成但没有发布任何内容

案例2

当我像这样将发布部分从文件移动到顶层时

subprojects {
apply from: "$rootDir/gradle/artifactory.gradle"
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
}

一切正常,构建成功并发布。

问题

这两种配置有什么区别,为什么它在第一种情况下不起作用?我认为如果我将所有与发布相关的部分保留在一个地方而不是不同的地方,看起来会更准确,但出于某种原因我不能。

最佳答案

问题似乎是我错过了插件配置:

    pluginManagement {
gradle.ext.artifactoryPassword = artifactory_password ?: "nokey"
gradle.ext.artifactoryUser = artifactory_user ?: "nokey"
repositories {
mavenLocal()
maven {
url "${artifactoryUrl}/mvn-gradle-plugins"
credentials {
username = gradle.ext.artifactoryUser
password = gradle.ext.artifactoryPassword
}
}
maven {
url "${artifactoryUrl}/mvn-libs-release"
credentials {
username = gradle.ext.artifactoryUser
password = gradle.ext.artifactoryPassword
}
}
}
}

存储库是在存储库部分配置的:

    repositories {
if(version.toString().endsWith('SNAPSHOT')) {
maven {
url "$artifactoryUrl/mvn-libs-snapshot"
credentials {
username artifactoryUser
password artifactoryPassword
}
}
}
maven {
url "$artifactoryUrl/mvn-libs-release"
credentials {
username artifactoryUser
password artifactoryPassword
}
}
maven {
credentials {
password = artifactoryPassword
username = artifactoryUser
}
url "$artifactoryUrl/mvn-external"
}
mavenLocal()
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}

但直到我添加了插件管理部分并更新了artifactory和recon插件的版本后,它才起作用。

关于java - artifactoryPublish 配置中发布部分的魔力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60040458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com