Невозможно опубликовать одну банку в мульти-проекте с помощью Gradle - PullRequest
0 голосов
/ 23 сентября 2018

Структура мультипроекта:

Root 
 +---ProjectA
     +---ProjectB
     +---ProjectC
     +    ...

Я хочу опубликовать один консолидированный файл JAR в

task allJar

build.gradle

buildscript {
  repositories {
    mavenLocal()
    maven {
      url "myurl"
      credentials {
        // Credentials needed to pull build dependencies from Nexus
        username "$username"
        password "$password"
      }
    }
  }

}


apply plugin: "maven-publish"
apply plugin: "maven"

allprojects {

  repositories {
      mavenLocal()
      maven {
        credentials {
          username "$username"
          password "$password"
        }
        url "url"
      }

    group 'com.myproject'
    version = '1.0.0-SNAPSHOT'

  }

  subprojects {
   apply plugin: 'java'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    sourceSets.main.java.srcDir "src/main/java"
    sourceSets.main.resources.srcDirs "src/main/resources"
    sourceSets.test.java.srcDir "src/test/java"
    sourceSets.test.resources.srcDirs "src/test/resources"
    dependencies {

      // string utils
      compile "org.apache.commons:commons-lang3:3.4"
      testCompile "junit:junit"

    }
    compileJava.dependsOn(processResources)
  }

}

subprojects.each { subproject ->
  evaluationDependsOn(subproject.path)
}
task allJar(type: Jar, dependsOn: subprojects.assemble) {
  baseName = project.name
  subprojects.each { subproject ->
    from subproject.configurations.archives.artifacts.files.collect {
      zipTree(it)
    }
  }
}


publishing {
  publications {
    mavenJava(MavenPublication) {
      artifactId = project.name
      from components.java
      artifact allJar
      println "Project Group: " + project.group + "\nProject Name: " + project.name + "\nProject Version: " + project.version
    }
  }

  repositories {
    maven {
      credentials{

        username NEXUS_USER
        password NEXUS_PASS
      }

      url "myurl"

    }
  }
}

Проблемы

Я получаю сообщение об ошибке при публикации как

Invalid publication 'mavenJava': multiple artifacts with the identical extension and classifier ('jar', 'null
').

Добавление классификатора: «все» в задаче allJar решает проблему, но создает2 баночки в корневой папке

  1. build / libs / MyProject-1.0.0-SNAPSHOT.jar
  2. build / libs / MyProject-1.0.0-SNAPSHOT-all.jar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...