메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 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)
            }
        }
    }
}
번호 제목 날짜 조회 수
35 .git폴더를 삭제하고 다시 git에 추가하고 서버에 반영하는 방법 2017.06.19 4498
34 [sbt] sbt-assembly를 이용하여 실행에 필요한 모든 j라이브러리를 포함한 fat jar파일 만들기 2016.07.11 1927
33 build.gradle을 pom.xml로 변환하는 방법 2016.08.18 1477
32 원격 리포지토리에서 최초 clone시 Permission denied (publickey). 오류발생시 조치사항 2017.06.20 961
31 [SBT] SBT 사용법 정리(링크) 2016.08.04 957
30 ubuntu에 maven 3.6.1설치 및 환경변수 설정 2019.06.02 945
29 [SBT] assembly시 "[error] deduplicate: different file contents found in the following:"오류 발생시 조치사항 2016.08.04 730
28 springframework를 이용한 war를 생성하는 build.gradle파일(참고용) 2016.08.19 727
» spark, kafka, mariadb, jena, springframework등을 이용하여 공통모듈을 jar로 만들기 위한 build.gradle파일(참고용) 2016.08.19 681
26 compile할때와 exclude할때 대상을 표현하는 명칭이 다르므로 주의할것 2016.08.10 667
25 Java 8에서 pom.xml에 JavaDoc 관련 태그가 설정되어 있으나 오류등으로 실패하면 나머지 Maven작업이 종료되는 문제 해결 방법 2017.01.24 504
24 원격의 origin/master를 기준으로 dev branch를 만들어 작업후 원격의 origin/dev에 push하는 방법 file 2016.11.22 495
23 github에 있는 프로젝트와 로컬에서 작업한 프로젝트 합치기 2016.11.22 490
22 git설명 한글판 2015.12.09 440
21 Eclipse 에서 bitbucket.org 연동 하기 file 2017.06.08 433
20 .gitignore파일에 지정되지 않은 파일이 ignore되는 경우 확인방법 2016.11.22 430
19 원격에 있는 git를 받은후 기존repository삭제후 새로운 리포지토리에 연결하여 소스 등록 2019.07.13 416
18 로컬에 있는 jar파일을 지정하고 dependency로 가져오기 2016.08.19 401
17 spark submit용 jar파일을 만드는 sbt 용 build.sbt설정 파일(참고용) 2016.08.19 391
16 build할때 unmappable character for encoding MS949 에러 발생시 조치사항 2016.08.03 373
위로