9

我正在使用以下设置:

  • 毕业 5.2.1
  • 联系发布
  • 龙目岛 1.18.6
  • lombok gradle 插件 io.freefair.lombok 3.1.4

delombok 完成后,我想将 sourceJar 上传到 nexus。

对于 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 源?

4

1 回答 1

7

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

于 2019-04-12T09:42:21.210 回答