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.
185 lines
4.3 KiB
185 lines
4.3 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-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 |