1
votes

I am having some issues trying to create a task that build a special file which is then uploaded to artifactory.

Heres a simplified version:

apply plugin: 'maven-publish'

task myTask {
    ext.destination = file('myfile')
    doLast {
        // Here it should build the file
    }
}

publishing {
    repositories {
        maven {
            name 'ArtifactoryDevDirectory'
            url 'http://artifactory/artifactory/repo-dev'
            credentials {
                username 'username'
                password 'password'
            }
        }
    }

    publications {
        MyJar(MavenPublication) {
            artifactId "test"
            version "1.0"
            groupId "org.example"
            artifact myTask.destination
        }
    }
}

This works, except that gradle publish does not run myTask. I tried adding

publishMyJarPublicationToArtifactoryDevDirectoryRepository.dependsOn myTask

but i just get:

Could not find property 'publishMyJarPublicationToArtifactoryDevDirectoryRepository' on root project 'test'.

I tried messing about with the artifact, adding a custom artifact and configuration and publishing that instead but that did not work either.

Any help would be greatly appreciated.

1

1 Answers

1
votes
afterEvaluate {
    publishMyJarPublicationToArtifactoryDevDirectoryRepository.dependsOn myTask
}

Accomplishes what I want.