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.6targetCompatibility = 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.6targetCompatibility = 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" } } }}
时间: 2024-10-10 16:27:36