apply plugin: 'java' apply plugin: 'maven-publish' def classesDir='build/classes/main' tasks.withType(JavaCompile){ options.encoding = 'UTF-8' destinationDir = file(classesDir) } configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' } //源码版本 sourceCompatibility=11 //构建的class版本 targetCompatibility=11 //解压lib下的jar到classes文件夹 version='10.0' jar{ baseName="fine-third" zip64 true from {classesDir} } repositories { mavenCentral() maven { url "http://mvn.finedevelop.com/repository/maven-public/" } maven { url "http://mvn.finedevelop.com/repository/fanruan/" } } sourceSets{ main{ java{ srcDirs=[] } } } //获取什么分支名 FileTree files =fileTree(dir:'./',include:'build*.gradle') def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf (java.io.File.separator)) def branchName=buildDir.substring(buildDir.lastIndexOf (java.io.File.separator)+1) def srcDir="." def MVN_BRANCH = branchVariable.toUpperCase() // @branch - 分支信息 def maven_version="${version}-${MVN_BRANCH}-SNAPSHOT" def jar_version = version configurations { // thirdjar // sigar essential } // 主体代码与essential的对应关系配置在TeamCity String essentialVersion = findProperty("essentialVersion") //指定依赖 dependencies{ compileOnly "com.fr.essential:fine-essential:${essentialVersion}" // thirdjar "com.fr.third:fine-third-base:10.0-BASE-SNAPSHOT" // sigar "com.fr.third:sigar:1.6.0" testCompile 'junit:junit:4.12' } publishing { publications { third(MavenPublication) { groupId "com.fr.third" artifactId "fine-third" version maven_version from components.java } } repositories { maven { url "http://mvn.finedevelop.com/repository/fanruan/" credentials { username = findProperty("NEXUS_USERNAME") password = findProperty("NEXUS_PASSWORD") } } } } task unpack(type:Copy) { delete classesDir destinationDir=file(classesDir) // println(configurations.thirdjar.singleFile) // from { // zipTree(configurations.thirdjar.singleFile) // } // from { // zipTree(configurations.sigar.singleFile) // } // from { // zipTree("fine-quartz/lib/c3p0-0.9.1.1.jar") // } from { zipTree("fine-spring/lib/aopalliance-1.0.jar") } from { zipTree("fine-poi/lib/curvesapi-1.03.jar") } from { zipTree("fine-freehep/lib/fine-font-10.0.jar") } fileTree(dir:"build/libs",include:"**/*.jar").each { File file -> from { zipTree(file) } } } // 将essential依赖等级的jar全部解压到classes下 task unpackEssential(type:Copy) { for (File file : configurations.essential.files) { from zipTree(file) } into classesDir } jar.dependsOn unpackEssential jar.dependsOn unpack