将发布配置移动到 gradle 中的一个位置

Move publishing configuration to one place in gradle

我有一个包含模块的项目,我的目标是在构建每个模块和构建所有模块后配置发布,这样我就可以创建一个包含所有 jar 的 zip 文件并上传它。我在 subprojects 部分和外部部分进行。

publishing {
  publications {
    mavenJava(MavenPublication) {
      //my artifacts here
    }
  }
  repositories {
    maven {
      url "${artifactoryURL}"
      credentials {
        username = "${artifactoryUsername}"
        password = "${artifactoryPassword}"
      }
    }
  }
}

有没有办法将 repositories 配置移动到一个地方,这样我就可以避免重复配置?

我猜您是在没有任何来源的顶级(根、父)项目中创建可部署项。

Is there a way to move repositories configuration to one place, so I could avoid duplication of this configuration?

当然可以。就用subprojects, allprojects or generic configure,看你的需要:

allprojects {
  id 'maven-publish'

  publishing {
    repositories {
      maven {
        url "http://maven.repo"
      }
    }
  }
}

这将为所有项目配置发布(请注意,您可能不想发布所有内容)。

对于具有 Java 源的项目,您可以像往常一样配置发布:

subprojects {
  publishing {
      publications {
          main(MavenPublication) {
              from components.java

              artifact sourcesJar
              artifact javadocJar
          }
      }
  }
}

对于根项目,只需像 中那样配置部署即可。