221 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			221 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
| 
 | |
| plugins {
 | |
|   id "us.kirchmeier.capsule" version "1.0.1"
 | |
|   id 'com.google.protobuf' version '0.7.0'
 | |
| }
 | |
| 
 | |
| apply plugin: 'java'
 | |
| apply plugin: 'eclipse'
 | |
| apply plugin: 'idea'
 | |
| 
 | |
| apply plugin: 'maven-publish'
 | |
| 
 | |
| // Uncomment the lines below to define an application
 | |
| // (this will also allow you to build a "fatCapsule" which includes
 | |
| // the entire application, including all dependencies in a single jar)
 | |
| //apply plugin: 'application'
 | |
| //mainClassName='your.main.ApplicationClass'
 | |
| 
 | |
| // Is this a snapshot version?
 | |
| ext { isSnapshot = false } 
 | |
| 
 | |
| ext {
 | |
|         groupId = 'org.factcenter.meerkat'
 | |
|         nexusRepository = "https://cs.idc.ac.il/nexus/content/groups/${isSnapshot ? 'unstable' : 'public'}/"
 | |
|         
 | |
|         // Credentials for IDC nexus repositories (needed only for using unstable repositories and publishing)
 | |
|         // Should be set in ${HOME}/.gradle/gradle.properties
 | |
|         nexusUser =  project.hasProperty('nexusUser') ? project.property('nexusUser') : ""
 | |
|         nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
 | |
| }
 | |
| 
 | |
| description = "TODO: Add a description"
 | |
| 
 | |
| // Your project version
 | |
| version = "0.0"
 | |
| 
 | |
| version += "${isSnapshot ? '-SNAPSHOT' : ''}"
 | |
| 
 | |
| 
 | |
| dependencies {
 | |
|     // Meerkat common
 | |
|     compile project(':meerkat-common')
 | |
| 
 | |
|     // Logging
 | |
|     compile 'org.slf4j:slf4j-api:1.7.7'
 | |
|     runtime 'ch.qos.logback:logback-classic:1.1.2'
 | |
|     runtime 'ch.qos.logback:logback-core:1.1.2'
 | |
| 
 | |
|     // Google protobufs
 | |
|     compile 'com.google.protobuf:protobuf-java:3.+'
 | |
| 
 | |
|     testCompile 'junit:junit:4.+'
 | |
| 
 | |
|     runtime 'org.codehaus.groovy:groovy:2.4.+'
 | |
| }
 | |
| 
 | |
| 
 | |
| /*==== You probably don't have to edit below this line =======*/
 | |
| 
 | |
| // Setup test configuration that can appear as a dependency in
 | |
| // other subprojects
 | |
| configurations {
 | |
|     testOutput.extendsFrom (testCompile)
 | |
| }
 | |
| 
 | |
| task testJar(type: Jar, dependsOn: testClasses) {
 | |
|     classifier = 'tests'
 | |
|     from sourceSets.test.output
 | |
| }
 | |
| 
 | |
| artifacts {
 | |
|     testOutput testJar
 | |
| }
 | |
| 
 | |
| // The run task added by the application plugin
 | |
| // is also of type JavaExec.
 | |
| tasks.withType(JavaExec) {
 | |
|     // Assign all Java system properties from
 | |
|     // the command line to the JavaExec task.
 | |
|     systemProperties System.properties
 | |
| }
 | |
| 
 | |
| 
 | |
| protobuf {
 | |
|     // Configure the protoc executable
 | |
|     protoc {
 | |
|     // Download from repositories
 | |
|         artifact = 'com.google.protobuf:protoc:3.+'
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| idea {
 | |
|     module {
 | |
|         project.sourceSets.each { sourceSet ->
 | |
| 
 | |
|             def srcDir = "${protobuf.generatedFilesBaseDir}/$sourceSet.name/java"
 | |
| 
 | |
|             println "Adding $srcDir"
 | |
|             // add protobuf generated sources to generated source dir.
 | |
|             if ("test".equals(sourceSet.name)) {
 | |
|                 testSourceDirs += file(srcDir)
 | |
|             } else {
 | |
|                 sourceDirs += file(srcDir)
 | |
|             }
 | |
|             generatedSourceDirs += file(srcDir)
 | |
| 
 | |
|         }
 | |
| 
 | |
| 	    // Don't exclude build directory
 | |
| 	    excludeDirs -= file(buildDir)
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| /*===================================
 | |
|  *        "Fat" Build targets
 | |
|  *===================================*/
 | |
| 
 | |
| 
 | |
| if (project.hasProperty('mainClassName') && (mainClassName != null)) {
 | |
| 
 | |
|     task mavenCapsule(type: MavenCapsule) {
 | |
|         description = "Generate a capsule jar that automatically downloads and caches dependencies when run."
 | |
|         applicationClass mainClassName
 | |
|         destinationDir = buildDir
 | |
|     }
 | |
| 
 | |
|     task fatCapsule(type: FatCapsule) {
 | |
|         description = "Generate a single capsule jar containing everything. Use -Pfatmain=... to override main class"
 | |
| 
 | |
|         destinationDir = buildDir
 | |
| 
 | |
|         def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | |
| 
 | |
|         applicationClass fatMain
 | |
| 
 | |
|         def testJar = hasProperty('test')
 | |
| 
 | |
|         if (hasProperty('fatmain')) {
 | |
|             appendix = "fat-${fatMain}"
 | |
|         } else {
 | |
|             appendix = "fat"
 | |
|         }
 | |
| 
 | |
|         if (testJar) {
 | |
|             from sourceSets.test.output
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| /*===================================
 | |
|  *        Repositories
 | |
|  *===================================*/
 | |
| 
 | |
| repositories {
 | |
|         
 | |
|         // Prefer the local nexus repository (it may have 3rd party artifacts not found in mavenCentral)
 | |
|         maven { 
 | |
|             url nexusRepository
 | |
|             
 | |
|             if (isSnapshot) {
 | |
|                 credentials { username 
 | |
|                     password 
 | |
| 
 | |
|                     username nexusUser
 | |
|                     password nexusPassword 
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         // Use local maven repository
 | |
|         mavenLocal()
 | |
| 
 | |
|         // Use 'maven central' for other dependencies.
 | |
|         mavenCentral()
 | |
| }
 | |
| 
 | |
| task "info" << {
 | |
|         println "Project: ${project.name}"
 | |
| println "Description: ${project.description}"
 | |
|         println "--------------------------"
 | |
|         println "GroupId: $groupId"
 | |
|         println "Version: $version (${isSnapshot ? 'snapshot' : 'release'})"
 | |
|         println ""
 | |
| }
 | |
| info.description 'Print some information about project parameters'
 | |
| 
 | |
| 
 | |
| /*===================================
 | |
|  *        Publishing
 | |
|  *===================================*/
 | |
| 
 | |
| publishing {
 | |
|     publications {
 | |
|         mavenJava(MavenPublication) {
 | |
|             groupId project.groupId
 | |
|             pom.withXml {
 | |
|                 asNode().appendNode('description', project.description)
 | |
|             }
 | |
|             from project.components.java
 | |
| 
 | |
|         }
 | |
|     }
 | |
|     repositories {
 | |
|         maven {
 | |
|             url "https://cs.idc.ac.il/nexus/content/repositories/${project.isSnapshot ? 'snapshots' : 'releases'}"
 | |
|             credentials { username 
 | |
|                 password 
 | |
| 
 | |
|                 username nexusUser
 | |
|                 password nexusPassword 
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 |