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") String cbbVersion = findProperty("cbbVersion") //指定依赖 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 pom.withXml { def dep = asNode().appendNode('dependencies'); def node = dep.appendNode("dependency") node.appendNode("groupId", "com.fr.cbb") node.appendNode("artifactId", "fine-cbb") node.appendNode("version", "${cbbVersion}") } } } 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) from { zipTree("fine-freehep/lib/fine-font-10.0.jar") } from { zipTree("fine-word/lib/aspose-words-22.8.0.jar") } fileTree(dir:"build/libs",include:"**/*.jar").each { File file -> from { zipTree(file) } } } jar.dependsOn unpack