메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


1. eclipse 에서 프로젝트명에서 우측 마우스 Gradle->Refresh Dependencies를 누르면 관련 jar파일을 다운로드한다.
2. eclipse 에서 프로젝트명에서 우측 마우스 Run As -> Gradle Build-> Gradle Tasks에서 "jar"를 입력하고 실행하면
build/libs밑에 jar파일이 생성된다.


---------------------------------build.gradle파일-------------------------
group 'com.gooper.icbms.sda'
version '2.0'

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'eclipse-wtp'
apply plugin: 'maven'
apply plugin: 'application'
//apply plugin: 'com.github.johnrengelman.shadow'

compileJava.options.encoding = 'UTF-8'  

sourceCompatibility = 1.7

def nexusUrl = 'http://www.gooper.com'

repositories {
     // mavenCentral()
     maven { url "http://mesir.googlecode.com/svn/trunk/mavenrepo" }
     maven { url "https://code.lds.org/nexus/content/groups/main-repo" } 
     maven { url "${nexusUrl}/content/groups/gooper-public/" }

     jcenter()
}

task writeNewPom << {
    pom {
        project {
            inceptionYear '2014'
            licenses {
                license {
                    name 'The Apache Software License, Version 2.0'
                    url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    distribution 'repo'
                }
            }
        }
    }.writeTo("pom.xml")
}

configurations.all {
    // check for updates every build
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

configurations {    
    provided
    provided.extendsFrom(compile)
}

sourceSets {
    main.compileClasspath += configurations.provided
    test.compileClasspath += configurations.provided
    test.runtimeClasspath += configurations.provided
}

eclipse.classpath.plusConfigurations += [ configurations.provided ]

dependencies {
    // jena
    /*
    compile group: 'org.apache.jena', name: 'jena-arq', version:'3.0.1'
    compile group: 'org.apache.jena', name: 'jena-base', version:'3.0.1'
    compile group: 'org.apache.jena', name: 'jena-core', version:'3.0.1'
    compile group: 'org.apache.jena', name: 'jena-iri', version:'3.0.1'
    compile group: 'org.apache.jena', name: 'jena-shaded-guava', version:'3.0.1'
    compile group: 'org.apache.jena', name: 'jena-tdb', version:'3.0.1'
    compile group: 'org.apache.jena', name: 'jena-fuseki', version:'2.3.1'
    
    // elephas
    compile group: 'org.apache.jena', name: 'jena-elephas-common', version:'3.0.1'
    compile group: 'org.apache.jena', name: 'jena-elephas-io', version:'3.0.1'
    compile group: 'org.apache.jena', name: 'jena-elephas-mapreduce', version:'3.0.1'
    */
    
    compile group: 'org.apache.jena', name: 'jena-arq', version:'3.1.0'
    compile group: 'org.apache.jena', name: 'jena-base', version:'3.1.0'
    compile group: 'org.apache.jena', name: 'jena-core', version:'3.1.0'
    compile group: 'org.apache.jena', name: 'jena-iri', version:'3.1.0'
    compile group: 'org.apache.jena', name: 'jena-shaded-guava', version:'3.1.0'
    compile group: 'org.apache.jena', name: 'jena-tdb', version:'3.1.0'
    compile group: 'org.apache.jena', name: 'jena-cmds', version:'3.1.0'
    
    compile group: 'org.apache.jena', name: 'jena-fuseki', version:'2.3.1'
    
    // elephas
    compile group: 'org.apache.jena', name: 'jena-elephas-common', version:'3.1.0'
    compile group: 'org.apache.jena', name: 'jena-elephas-io', version:'3.1.0'
    compile group: 'org.apache.jena', name: 'jena-elephas-mapreduce', version:'3.1.0'
    
    
    compile group: 'opensymphony', name: 'quartz', version:'1.6.3'
    compile group: 'com.ibm.icu', name: 'icu4j', version:'51.2'
    compile group: 'javax.transaction', name: 'jta', version:'1.1'
    
    //springframework
    provided(group: 'org.springframework', name: 'spring-context', version:'4.0.5.RELEASE') { exclude(module: 'commons-logging') }
    provided group: 'org.springframework', name: 'spring-web', version:'4.0.5.RELEASE'
    provided group: 'org.springframework', name: 'spring-webmvc', version:'4.0.5.RELEASE'
    provided group: 'org.springframework', name: 'spring-aop', version:'4.0.5.RELEASE'
    provided group: 'org.springframework', name: 'spring-beans', version:'4.0.5.RELEASE'
    provided group: 'org.springframework', name: 'spring-context-support', version:'4.0.5.RELEASE'
    provided group: 'org.springframework', name: 'spring-core', version:'4.0.5.RELEASE'
    provided group: 'org.springframework', name: 'spring-jdbc', version:'4.0.5.RELEASE'
    
    // aspect
    compile (group: 'org.aspectj', name: 'aspectjrt', version:'1.7.3') {exclude (group:"org.slf4j", module:"slf4j-api")}
    compile group: 'org.aspectj', name: 'aspectjweaver', version:'1.7.3'
    compile group: 'org.aspectj', name: 'aspectjtools', version:'1.7.3'
    
    /*
    //compile group: 'org.slf4j', name: 'slf4j-api', version:'1.6.6'
    //compile group: 'org.slf4j', name: 'jcl-over-slf4j', version:'1.6.6'
    //compile group: 'org.slf4j', name: 'slf4j-log4j12', version:'1.6.6'
    */
    
    //json
    compile "org.codehaus.jackson:jackson-mapper-asl:1.1.1"
    compile "org.codehaus.jackson:jackson-core-asl:1.1.1" 
    compile "com.googlecode.json-simple:json-simple:1.1.1"
    
    //gson
    compile group: 'com.google.code.gson', name: 'gson', version:'2.4'
    
    // common/commons
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    compile group: 'commons-dbcp', name: 'commons-dbcp', version:'1.4'    
    compile group: 'commons-io', name: 'commons-io', version:'2.0.1'
    compile group: 'commons-fileupload', name: 'commons-fileupload', version:'1.2.2'
    compile group: 'commons-codec', name: 'commons-codec', version:'1.10'
    //compile group: 'org.apache.commons', name: 'commons-io', version:'1.3.2'    
   
    compile(group: 'log4j', name: 'log4j', version:'1.2.15') {
exclude(module: 'mail')
exclude(module: 'jms')
exclude(module: 'jmxtools')
exclude(module: 'jmxri')
    }
    
    
    // mongodb
    compile group: 'org.mongodb', name: 'mongo-java-driver', version:'2.10.1'
    // mariadb
    compile group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version:'1.3.3'
    
    //mybatis
    compile group: 'org.mybatis', name: 'mybatis', version:'3.2.2'
    compile group: 'org.mybatis', name: 'mybatis-spring', version:'1.2.0'
    
// kafka    
    //compile (group: 'org.apache.kafka', name: 'kafka_2.11', version:'0.9.0.1') { exclude( group: 'org.scala-lang', module: 'scala-library') }
    compile group: 'org.apache.kafka', name: 'kafka_2.11', version:'0.9.0.1'
    
    // avro
    compile group: 'org.apache.avro', name: 'avro', version:'1.7.7'
    //compile group: 'org.apache.avro', name: 'avro-tools', version:'1.7.7'
    
    // spark
    provided (group: 'org.apache.spark', name: 'spark-streaming-kafka_2.11', version:'1.6.2') {exclude (group: 'org.scala-lang', module: 'scala-library')}

}

/*
buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "com.github.jengelman.gradle.plugins:shadow:1.2.3"
  }
}

shadowJar {
  mergeServiceFiles()
  transform(ManifestResourceTransfomer) {
    mainClass = 'org.apache.jena.fuseki.cmd.FusekiCmd'
  }
  transform(ServicesResourceTransformer)
  transform(ApacheLicenseResourceTransformer)
  transform(ApacheNoticeResourceTransformer)
}
*/

jar {
  from {
      configurations.compile.collect {it.isDirectory() ? it : zipTree(it)}
  }
  manifest {
      attributes("Implementation-Title": "SDA-COMMON", "Implementation-Version": version)
  }
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "${nexusUrl}/content/repositories/gooper-releases/"){
                authentication(userName: nexusUsername, password: nexusPassword)
            }
            snapshotRepository(url: "${nexusUrl}/content/repositories/gooper-snapshots") {
                authentication(userName: nexusUsername, password: nexusPassword)
            }
        }
    }
}

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로