2017-10-05 68 views
0

我的项目中有一个git子模块(其中我无法控制),其中包含名为publish.gradle的文件。这个文件的内容是:当读取外部.gradle文件时发布源代码库

apply plugin: 'com.jfrog.artifactory' 
apply plugin: 'maven-publish' 

version = System.getenv()['VERSION'] ?: version 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 
     } 
    } 
} 

artifactory { 
    contextUrl = repoBaseUrl 
    publish { 
     String publishRepoKey = version.endsWith('SNAPSHOT') ? repoKeySnapshot : repoKeyRelease 
     repository { 
      repoKey = publishRepoKey // The Artifactory repository key to publish to 
      username = System.getenv()['ARTIFACTORY_USERNAME'] ?: artifactoryUser // The publisher user name 
      password = System.getenv()['ARTIFACTORY_PASSWORD'] ?: artifactoryPassword // The publisher password 
     } 
     defaults { 
      publications('mavenJava') 
      publishArtifacts = true 
      publishPom = true 
     } 
    } 
    resolve { 
     repoKey = repoKey 
    } 
} 

在我build.gradle文件我有以下行:

apply from: "${rootDir}/submodule/gradle/publish.gradle"

当我尝试这行后添加以下行:

task sourceJar(type: Jar) { 
    from sourceSets.main.allJava 
} 

publishing.publications.mavenJava.artifact sourceJar { 
    classifier 'sources' 
} 

然后发布正确的东西,除了存储库中的pom文件仅包含<dependencyManagement/>部分和所有依赖关系都丢失了。当我从build.gradle删除上述行时,pom是正确的。

回答

0

尝试覆盖与所有publishing块:

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 

      artifact sourceJar { 
       classifier "sources" 
      } 
     } 
    } 
} 
+0

我想到这一点,但我不希望覆盖,但如果这是唯一的方法... – mmjmanders