标签:
1.build.gradle
ext {
profile = "dev"
tag=‘web‘
if (project.hasProperty(‘pro‘)) {
temp = project.property(‘pro‘)
profile= temp.split(‘_‘)[0]
tag= temp.split(‘_‘)[1]
}
tag=tag+".gradle"
proConfig= loadGroovyConfig()
println profile+":"+ tag
}
apply from :tag
def loadGroovyConfig() {
def configFile = file(‘config.groovy‘)
new ConfigSlurper(profile).parse(configFile.toURL()).toProperties()
}
//gradle publishToMavenLocal -Ppro=test_external
2.web.gradle
apply plugin: ‘java‘
apply plugin: ‘maven‘
apply plugin: ‘war‘
apply plugin: ‘jetty‘
apply plugin: ‘idea‘
group = ‘com.infosky.icustoms‘
version = ‘1.0‘
description = """"""
sourceCompatibility = 1.6
targetCompatibility = 1.6
[compileJava, javadoc, compileTestJava]*.options*.encoding = ‘UTF-8‘
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
configurations {
mycompile
myprovided
myonlycompile
}
sourceSets{
main{
if(project.profile==‘dev‘) {
compileClasspath += configurations.mycompile
compileClasspath += configurations.myprovided
compileClasspath += configurations.myonlycompile
runtimeClasspath += configurations.mycompile
runtimeClasspath += configurations.myprovided
}else{
compileClasspath += configurations.mycompile
compileClasspath += configurations.myprovided
compileClasspath += configurations.myonlycompile
runtimeClasspath += configurations.mycompile
}
}
}
repositories {
mavenLocal()
maven { url "http://172.21.129.57:8081/nexus/content/groups/public/" }
maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
mycompile group: ‘com.infosky.icustoms‘, name: ‘icustoms-sso-client‘, version:‘1.0‘, transitive: false
myonlycompile group: ‘junit‘, name: ‘junit‘, version:‘3.8.1‘
myprovided group: ‘ccsplib.infosky‘, name: ‘antlr-2.7.7‘, version:‘1.1.1‘
}
def loadGroovyConfig() {
def configFile = file(‘config.groovy‘)
new ConfigSlurper(profile).parse(configFile.toURL()).toProperties()
}
processResources {
from (‘src/main/java‘) {
include ‘**/*.sql‘
include ‘**/*.xml‘
include ‘**/*.ftl‘
include ‘**/*.properties‘
}
println "begin replace profile!"
from(sourceSets.main.resources.srcDirs) {
filter(org.apache.tools.ant.filters.ReplaceTokens,
tokens: project.proConfig
)
}
println ant.getProperties()
// ant.copy(file: ‘src/command.bar‘, tofile: ‘dist/command.bat‘, encoding: ‘sjis‘) {
// filterchain {
// replaceTokens {
// token(key: ‘jarPath‘, value=jar.archivePath.name)
// }
// }
// }
println "end replace profile!"
}
idea {
module {
scopes.PROVIDED.plus += [configurations.myprovided,configurations.mycompile,configurations.myonlycompile]
}
}
3.client.gradle
ext {
    libName =  ‘icustoms-sso-client‘
}
apply plugin: ‘java‘
apply plugin: ‘maven‘
apply plugin: ‘maven-publish‘
group = ‘com.infosky.icustoms‘
version = ‘1.0‘
description = """sso"""
sourceCompatibility = 1.6
targetCompatibility = 1.6
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}
configurations {
    mycompile
    myprovided
}
sourceSets{
    main{
        resources {
           // srcDirs=[ ‘SourceCode/resources‘]
            exclude ‘**‘
        }
java{
    include ‘sso/common/**/*.*‘
    include ‘sso/client/**/*.*‘
    include ‘sso/constants/*.*‘
    
    include ‘sso/ticket/**/*.*‘
}
        if(project.profile==‘dev‘) {
            compileClasspath += configurations.mycompile
            compileClasspath += configurations.myprovided
            runtimeClasspath  += configurations.mycompile
            runtimeClasspath  += configurations.myprovided
        }else{
            compileClasspath += configurations.mycompile
            compileClasspath += configurations.myprovided
            runtimeClasspath  += configurations.mycompile
        }
    }
}
repositories {
        mavenLocal()
     maven { url "http://172.21.129.57:8081/nexus/content/groups/public/" }
     maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
    mycompile group: ‘ccsplib.infosky‘, name: ‘framework-core-bin‘, version:‘1.1.1‘
    
}
processResources {
    from (‘src/main/java‘) {
//        include ‘**/*.sql‘
//        include ‘**/*.xml‘
//        include ‘**/*.ftl‘
//        include ‘**/*.properties‘
//        include ‘**/*.vm‘
        exclude ‘**/*.java‘
    }
    println "begin replace profile!"
    from(sourceSets.main.resources.srcDirs) {
        filter(org.apache.tools.ant.filters.ReplaceTokens,
                tokens: project.proConfig
        )
    }
    println "end replace profile!"
}
jar {
    baseName libName
    from sourceSets.main.output
    include ‘sso/common/**/*.*‘
    include ‘sso/client/**/*.*‘
    include ‘sso/constants/*.*‘
    include ‘sso/config/*.*‘
    include ‘sso/utils/*.*‘
    include ‘sso/holder/*.*‘
    include ‘sso/user/**/*.*‘
    include ‘sso/bean/**/*.*‘
}
task sourceJar(type: Jar) {
    from sourceSets.main.allJava
    include ‘sso/common/**/*.*‘
    include ‘sso/client/**/*.*‘
    include ‘sso/constants/*.*‘
    include ‘sso/config/*.*‘
    include ‘sso/utils/*.*‘
    include ‘sso/holder/*.*‘
    include ‘sso/user/**/*.*‘
    include ‘sso/bean/**/*.*‘
}
publishing {
    publications {
        mavenJava(MavenPublication) {
            groupId group
            artifactId libName
            version version
            from components.java
            artifact sourceJar {
                classifier "sources"
            }
        }
    }
}标签:
原文地址:http://www.cnblogs.com/sl21100/p/4803850.html