Artifactory publikovat s multi-modul gradle

0

Otázka

Doufám, že se všem daří dobře.

Dnes jsem pracoval na multi-modul gradle projektu, a snaží se publikovat jeden z jeho závislost na artifactory stejně.

mé struktury projektu jsou:

vybudovat.gradle (hlavní)

buildscript {
    ext {
        appVersion = "0.0.2-RC3"
        appBuildCode = 2

        // dependencies version
        springVersion = "2.6.0"

        swaggerApiVersion = "1.5.12"
        jjwtVersion = "0.11.2"
        lombokVersion = "1.18.22"

        // firebase versions
        firebaseAdminVersion = "8.1.0"
    }

    repositories {
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:$springVersion")
        classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.2.0")
        classpath("io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE")
        classpath("org.jfrog.buildinfo:build-info-extractor-gradle:latest.release")
    }
}

apply(plugin: "org.sonarqube")
apply(plugin: "jacoco")

allprojects {
    apply(plugin: 'java')
    apply(plugin: 'org.springframework.boot')
    apply(plugin: 'io.spring.dependency-management')


    group 'com.example'

    repositories {
        mavenCentral()

        maven {
            url "${artifactory_contextUrl}/libs-release/"
            allowInsecureProtocol true
        }
    }

    configurations {
        all*.exclude module: 'spring-boot-starter-logging'
    }

    dependencies {
    ....
    }
}

vybudovat.gradle (api)

plugins {
    id 'java-library'
    id 'maven-publish'
    id 'com.jfrog.artifactory'
}

version "${appVersion}"

artifactory {
    contextUrl = artifactory_contextUrl

    publish {
        contextUrl = artifactory_contextUrl

        repository {
            repoKey = artifactory_repoKey
            username = artifactory_user
            password = artifactory_password
        }

        defaults {
            publishConfigs('published')
            publishIvy = false
            publications("mavenJava")
        }
    }
}

//jar {
//////    archiveName 'admin-api.jar'
//////    manifest{
//////        attributes ("Fw-Version" : "2.50.00", "${parent.manifestSectionName}")
//////    }
//////    baseName 'admin-api'
////    archivesBaseName = "$archivesBaseName"
//
//    from {
//        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
//    }
//}

task sourcesJar(type: Jar, dependsOn: classes) {
//    classifier = 'sources'
    from sourceSets.main.allSource
}

artifacts {
    archives sourcesJar
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from(components.java)
//            artifactId = 'admin-api'

            artifact(sourcesJar) {
                classifier 'sources'
            }
        }
    }
}


task dist(type: Zip, dependsOn: build) {
    classifier = 'buildreport'

    from('build/test-results') {
        include '*.xml'
        into 'tests'
    }

    from('build/reports/codenarc') {
        into 'reports'
    }

    from('build/docs') {
        into 'api'
    }

    from(sourcesJar) {
        into 'source'
    }

    from('build/libs') {
        exclude '*-sources.jar'
        into 'bin'
    }
}

//artifactoryPublish.dependsOn('clean', 'build', 'groovydoc', 'sourcesJar', 'dist')
//publish.dependsOn(artifactoryPublish)

a úkol artifactoryPublish vyrábí:

> Task :admin-api:extractModuleInfo
[pool-7-thread-1] Deploying artifact: http://10.0.0.3:8081/artifactory/libs-release-local/com/example/admin-api/0.0.2-RC3/admin-api-0.0.2-RC3-plain.jar
[pool-7-thread-1] Deploying artifact: http://10.0.0.3:8081/artifactory/libs-release-local/com/example/admin-api/0.0.2-RC3/admin-api-0.0.2-RC3.module
[pool-7-thread-1] Deploying artifact: http://10.0.0.3:8081/artifactory/libs-release-local/com/example/admin-api/0.0.2-RC3/admin-api-0.0.2-RC3.pom
> Task :artifactoryDeploy

Nyní problém je, že,

moduly, jako admin-api staví se jménem admin-api-0.0.2-RC3-plain.jara usnesení , závislosti, selže v jiném projektu, ze které toto API musí být použit hlášení následující problém:

Could not resolve com.example.admin-api:0.0.2-RC3.
Required by:
    project :admin-api

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

gradle závislost prohlášení:

dependencies {
    compileOnly('com.example:admin-api:0.0.2-RC3')
}

Prosím, pomozte mi o to, co je tady špatně.

Také, je jejich jakýmkoliv způsobem, tak, že moduly jar staví bez přípony -plain?

Díky předem:)

artifactory build gradle java
2021-11-22 08:21:53
1

Nejlepší odpověď

0

Ahoj, konečně jsem dosáhl pomocí následujících konfigurací:

allprojects {    
    ....
    bootJar {
        enabled = false
    }
    
    jar {
        archiveClassifier.convention('')
        archiveClassifier.set('')
    }
    ....
}
2021-12-15 03:10:22

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................