0

I have a git submodule (of which I have no control of) in my project which contains file named publish.gradle. The contents of this file are:

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

In my build.gradle file I have the following line:

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

When I try to add the following line after this line:

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

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

Then the correct things get published, except that the pom file in the repository only contains a <dependencyManagement/> section and all the dependencies are missing. When I remove the above lines from build.gradle the pom is correct.

mmjmanders
  • 1,533
  • 2
  • 13
  • 32

1 Answers1

0

Try to override the all publishing block with :

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

            artifact sourceJar {
                classifier "sources"
            }
        }
    }
}
ToYonos
  • 16,469
  • 2
  • 54
  • 70