CMD를 진행하면서 예전에 셋팅했던 기억을 되살려 프로젝트 셋팅을

Spring-data-JPA + Hibernate로 그리고 gradle을 사용해서 셋팅을 하였다.

local에서는 embeded HSQLDB를 사용해서 메모리에 올려서 작동하도록 구성을 하였는데

이클립스에서는 간단한 JPARepository Testcase가 제대로 잘 동작을하는데 (save, findAll 등)

터미널에서 gradle build 명령을 실행하면 build도중 testcase가 실패하는 문제가 발생하였다.


에러메시지는 @Entity annotation을 달고있는 Entity 클래스가 JPA에 의해서 관리되지 않는 Entity다.. 뭐 이런 메시지..


몇번을 뒤적거리다 원인을 stackoverflow에서 찾을 수 있었다.


http://stackoverflow.com/questions/14742941/no-persistent-classes-found-when-integration-test-in-gradle


원인은 gradle은 build시에 resources와 classes 디렉토리를 별도로 만들어서 build를 하는데

JPA는 이 resources 파일들과 classes파일들이 같은 디렉토리에 존재해야 한다는 것이다. 


해결책은 build.gradle에 아래를 추가...


sourceSets.main.output.resourcesDir = sourceSets.main.output.classesDir
sourceSets.test.output.resourcesDir = sourceSets.test.output.classesDir


수정하고 돌려보니 Pass가 된다.. 

저작자 표시 비영리 변경 금지
신고
Posted by 용식
TAG gradle, JPA
1. crescent/build.gradle
2. crescent_core_web/build.gradle
3. crescent_utils/build.gradle
저작자 표시 비영리 변경 금지
신고
Posted by 용식
TAG gradle

1. copy



2. jar



3. javaexec



4. Custom task type - in Build Files



5. Custom task type - source tree

- MySqlTask.groovy로 생성하며 위치는 buildSrc/src/main/groovy/MySqlTask.groovy 로 넣으면 된다고 하는데.. 테스트시 MySqlTask property를 찾지 못 함... 왜 그러지 --; 

된다.. 일단은 .gradle 디렉토리를 삭제해보라는 stackoverflow 답변에 따라 해보니 실행은 되며, 추가로 알게된 것은 만약 MySqlTask가 package를 가지고 있을때는, import를 해주는 구문이 들어가야 한다고 한다.


http://stackoverflow.com/questions/16209354/gradle-could-not-find-property-in-buildsrc



저작자 표시 비영리 변경 금지
신고
Posted by 용식

1. define variable



2. using ant task

3. zip with ant

4. task list when java build

5. dependencies

6. custom repositories

7. multiple source directory

8. default task

9. publish

저작자 표시 비영리 변경 금지
신고
Posted by 용식
TAG gradle

1. append task



2. task config

- <<가 붙지 않으면 configuration block으로 처리가 되며, task 수행전 먼저 실행된다.

- 'configuring'이 먼저 출력된것을 참고



3. dependency 설정

- depenency를 설정하는 여러가지 방법. multi 설정 방법



4. logging

- levels 배열을 돌면서 logging.level에 set. 이 level을 바탕으로 로깅이 수행됨

- ${level}을 ${logging.level}로 변경해도 결과는 같음

5. doFirst

- 중복 doFirst 설정시 순서 주의. 제일 마지막에 선언된 doFirst가 제일 먼저 실행됨



6. doLast

- 중복 doLast설정시 순서 주의. 제일 마지막에 선언된 doLast가 제일 마지막에 실행됨



7. onlyIf

- system properties는 -D로 설정



8. didWork

- 최초 build이후 빌드 대상 파일의 변경없이, 다시 gradle을 실행하면 tasks.compileJava.didWork는 false



9. enabled



10. dynamic properties - copyFiles task에서 runtime에 어떤 작업을 통해 배열을 만들어내서 그것을 createArtifact task에서 사용



저작자 표시 비영리 변경 금지
신고
Posted by 용식

페이스북에서 SKP 팀장님으로 계시는 박성철님(http://www.facebook.com/fupfin) 도움으로 

Building and Testing with gradle 버전을 알게 되어서 하나씩 보고 익히는


1. gradle 다운로드

 - http://gradle.org/downloads.html 


2. 설치 

 - 압축해제 환경설정에 $GRADLE_HOME 설정

 - $GRADLE_HOME/bin path 설정

 

3. Helloworld 


-b 옵션은 build파일을 지정 할 수 있다. 기본은 build.gradle이다.

-q 옵션은 error레벨의 로그만 로깅한다.

-task는 두개 이상 설정이 가능하며, dependsOn 설정으로 의존관계를 설정 할 수 있다.


4. 간단한 Java 빌드 예제


- apply plugin: 'java'라는 내용으로 simpleJavaBuild.gradle 파일을 만든다.

- 위와 같은 디렉토리 구조로 HelloWorld.java 파일을 생성한다.

- build task를 실행한다.


5. build 후 디렉토리 구조


출처 : http://www.gradleware.com/registered/books/building-and-testing/hello-gradle.html


6. gradle --help를 치면, command line 리스트를 볼 수 있다.


https://github.com/need4spd/gradletest.git


저작자 표시 비영리 변경 금지
신고
Posted by 용식

http://wiki.kwonnam.pe.kr/gradle/dependencies

저작자 표시 비영리 변경 금지
신고
Posted by 용식
TAG gradle


티스토리 툴바