사용자 도구

사이트 도구


gradle:from_maven

문서의 이전 판입니다!


Maven에서 Gradle로

pom.xml에서 의존성 문자열 모두 뽑아내기

  • dependencies.groovy
    def pom = new XmlParser().parse(new File(args[0]))
     
    def dependencies = pom.dependencies.dependency.each {
         // GString을 사용할 수도 있어서 일부러 쌍따옴표로 했음
        println "\"${it.groupId.text()}:${it.artifactId.text()}:${it.version.text()}\","
    }
  • 실행한 뒤에 맨 끝에 쉼표는 잘 조정해서 쓸 것
    > groovy dependencies pom.xml
    "com.google.guava:guava:10.0.1",
    "spy:spymemcached:2.7",
    "org.codehaus.jettison:jettison:1.3",
    .....

provided

기본적으로 Gradle은 provided를 제공하지 않고 있다. 하지만 Gradle Web(War) Plugin 프로젝트는 providedCompile을 지원하고 있으며, 웹이 아니더라도 유사 기능을 흉내낼 수 있다.

Gradle Dependencies - provided 참조.

Apache CXF

Apache CXF로 SOAP Client Class 생성하는 것은 JavaExec 태스크로 하면 된다. CXF 참조

Annotation Processing

Annotation Processing은 원칙적으로는 컴파일 과정에서 자동으로 수행된다. 하지만 JPA 2 MetaModel 생성같이 소스를 생성해야 할 경우가 있는데 그럴 때는 -proc:only 옵션으로 독립적으로 소스 생성만 하는 컴파일러를 돌려주고 그 뒤에 실제 컴파일을 수행하도록 실행 계획을 짜면 된다.

Lombok의 경우에도 아무 설정도 할 필요없다. 클래스패스에만 있으면 자동으로 수행된다.

Gradle에서 JPA2 MetaModel 생성 참조.

projectA의 단위테스트가 projectB의 단위테스트에 의존

projectA의 단위테스트가 projectB의 단위테스트에 의존하는 경우가 있다. 원칙적으로는 이러면 안된다. projectA와 B간의 의존관계는 메인 자바 소스에 대한 것이어야지 테스트에 대한 것이면 안된다. 하지만 해결은 가능하다.

Multi Project 단위 테스트간의 의존성 참조

gradle/from_maven.1349924329.txt.gz · 마지막으로 수정됨: 2012/10/11 11:58 저자 kwon37xi