I\'m just learning Gradle, coming from both an Ant+Ivy and Maven background and I\'m trying to wrap my head around the proper way to publish a release version of my software
If you want to use the new maven-publish plugin, you can upload to different repositories using an if statement:
apply plugin: 'maven-publish'
...
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            credentials {
                username "anonymous"
            }
            if(project.version.endsWith('-SNAPSHOT')) {
                url "http://example/artifactory/libs-snapshot-local"
            } else {
                url "http://example/artifactory/libs-release-local"
            }
        }
    }
}
Reference: maven-publish and setting snapshotRepository and releaseRepository
You can configure the snapshot and the release repository in the 'Upload' task (e.g. the uploadArchives) task:
uploadArchives {  
    repositories {  
        mavenDeployer {  
            repository(url: 'http://myCompanyRepo.com:8081/releases') {  
                authentication(userName: 'admin', password: 'password');  
            }  
            snapshotRepository(url: 'http://myCompanyRepo.com:8081/snapshots') {
                authentication(userName: 'admin', password: 'password');  
            }  
        }  
    }  
}
For *-SNAPSHOT versions the snapshotRepository is used. Otherwise the releases repo is used.