Gradle Maven опубликовать исходный код Nexus Delombok - PullRequest
8 голосов
/ 20 марта 2019

Я использую следующую настройку:

  • gradle 5.2.1
  • nexus publish
  • lombok 1.18.6
  • lombok gradle pluginio.freefair.lombok 3.1.4

Я хотел бы загрузить sourceJar на nexus после того, как delombok будет сделан.

Для публикации в Maven я использую следующее:

task javadocJar(type: Jar) {
    from javadoc.destinationDir
    classifier = 'javadoc'
}
task sourcesJar(type: Jar) {
    from sourceSets.main.allJava
    classifier = 'sources'
}

...

publications {
        maven(MavenPublication) {
            from components.java
            artifact sourcesJar
            artifact javadocJar
        }
    }

Источники, загруженные в нексус, являются только один к одному с моим исходным источником.Как изменить конфигурацию, чтобы загруженные источники были источниками delombok?

1 Ответ

4 голосов
/ 12 апреля 2019

Вот автономный пример, который создает желаемый исходный JAR-файл с разделением и публикует его в репозиторий Maven (используя ./gradlew publishMavenPublicationToMyRepoRepository):

plugins {
  id 'java'
  id 'maven-publish'
  id 'io.freefair.lombok' version '3.1.4'
}

group = 'com.example'
version = '0.1'

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.6'
    annotationProcessor 'org.projectlombok:lombok:1.18.6'
}

task javadocJar(type: Jar) {
  from javadoc.destinationDir
  classifier = 'javadoc'
}

task sourcesJar(type: Jar) {
  ///////////////////////////////////////////////
  // This is the relevant change:
  from sourceSets.main.delombokTask
  ///////////////////////////////////////////////
  classifier = 'sources'
}

publishing {
  repositories {
    maven {
      name = 'myRepo'
      url = 'file:///tmp/myRepoDir'
    }
  }
  publications {
    maven(MavenPublication) {
      from components.java
      artifact sourcesJar
      artifact javadocJar
    }
  }
}

Обратите внимание, что в примере не используется «nexus»опубликовать », но вместо этого он просто публикует в простой репозиторий файловой системы.Насколько я понял ваш вопрос, фактическая загрузка - это не проблема, а скорее создание исходного файла JAR с деломбоком.

...