帆软使用的第三方框架。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

186 lines
4.4 KiB

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=1.8
//构建的class版本
targetCompatibility=1.8
//解压lib下的jar到classes文件夹
jar{
baseName="fine-third"
zip64 true
}
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 date = new Date()
def formattedDate = date.format('yyyy.MM.dd')
def srcDir="."
def maven_version_build = ""
def indexV = branchName.indexOf( "%2F");
// "FEATURE", "RELEASE"等等
String branchNameUpperCase = "RELEASE"
if(indexV != -1){
version= branchName.substring(indexV+3, branchName.length()).toUpperCase()
branchNameUpperCase = branchName.substring(0, indexV).toUpperCase()
maven_version_build = project.version +"-" + branchNameUpperCase +"-SNAPSHOT"
} else {
version= branchName
maven_version_build = project.version +"-SNAPSHOT"
}
def maven_version="${version}.${formattedDate}"
def jar_version = version
configurations {
// thirdjar
// sigar
essential
}
// 主体代码与essential的对应关系配置在TeamCity
String essentialVersion = findProperty("essentialVersion")
String cbbVersion = findProperty("cbbVersion")
//指定依赖
dependencies{
essential "com.fr.essential:fine-essential:${essentialVersion}"
essential "com.fr.cbb:fine-scheduler:${cbbVersion}"
essential "com.fr.cbb:fine-function:${cbbVersion}"
essential "com.fr.cbb:fine-jooq:${cbbVersion}"
essential "com.fr.cbb:fine-sql:${cbbVersion}"
// 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
ext.repo = 'release'
from components.java
}
third_build(MavenPublication) {
groupId "com.fr.third"
artifactId project.hasProperty("withCBB") ? "fine-third" : "fine-third-without-cbb"
version maven_version_build
ext.repo = 'snapshot'
from components.java
}
}
repositories {
maven {
name "release"
url "http://mvn.finedevelop.com/repository/fanruan-release/"
credentials {
username = findProperty("NEXUS_USERNAME")
password = findProperty("NEXUS_PASSWORD")
}
}
maven {
name "snapshot"
url "http://mvn.finedevelop.com/repository/fanruan/"
credentials {
username = findProperty("NEXUS_USERNAME")
password = findProperty("NEXUS_PASSWORD")
}
}
}
}
afterEvaluate {
tasks.withType(PublishToMavenRepository) { task ->
if (task.publication.hasProperty('repo') && task.publication.repo != task.repository.name) {
task.enabled = false
task.group = null
}
}
}
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) {
if (project.hasProperty("withCBB")) {
for (File file : configurations.essential.files) {
from (zipTree(file)) {
exclude "META-INF/versions/11/*"
exclude "META-INF/maven/com.zaxxer/**"
}
}
into classesDir
}
}
unpackEssential.dependsOn unpack
jar.dependsOn unpackEssential