Gradle Maven发布到delombok的源代码

时间:2019-03-19 23:31:22

标签: gradle build.gradle nexus lombok maven-publish

我正在使用以下设置:

  • 5.2.1级
  • 关系发布
  • 龙目岛1.18.6
  • lombok gradle插件io.freefair.lombok 3.1.4

在完成delombok之后,我想将sourceJar上传到联系。

对于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
        }
    }

上传到nexus的来源与我的原始来源只是一对一的。如何更改配置,以使上传的源成为delombok源?

1 个答案:

答案 0 :(得分:4)

这是一个独立的示例,该示例生成所需的delomboked源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 publish”,而是仅发布到简单的文件系统存储库。据我了解您的问题,实际的上传不是问题,而是创建代销源JAR。