Maven (8) 썸네일형 리스트형 Gradle 이슈 모음 There is insufficient memory for the Java Runtime Environment to continuegradle test를 동작시키니 해당 에러가 발생하였다. gradle이 동작하는 JVM memory 이슈인 줄 알았으나, OS 단의 문제였다. 예를 들어, JVM은 224MB를 할당하려 하는데, OS단에서는 해당 메모리만큼 사용이 가능하지 않은 경우이다. 즉, JVM에 설정된 -Xmx >> 시스템의 free memory 인 경우이다. 해결 방법s1. EC2 instance memory 늘리기2. OS의 free memory와 JVM의 memory 설정을 확인하여 수정하기 ~# jps -lvm4466 org.gradle.launcher.daemon.bootstrap.Gradl.. #4. 빌드는 어떤 방식으로 진행되는가 ( 메이븐 라이프 사이클 ) 빌드는 어떻게 진행되는 걸까? 메이븐의 라이프사이클과 페이즈 일반적으로 프로젝트를 빌드할 때의 과정 빌드 결과물 삭제컴파일에 필요한 자원 복사소스 코드 컴파일테스트압축배포메이븐은 이와 같이 미리 정의하고 있는 빌드 순서를 라이프사이클이라 한다. 그리고 라이프사이클의 빌드 단계를 페이즈라 부른다.기본 라이프 사이클compile : 소스코드 컴파일test : JUnit과 같은 단위 테스트 프레임워크로 단위 테스트를 한다. 테스트가 실패되면 빌드 실패로 간주한다.package : pom.xml의 packaging 값에 따라 압축한다. ( jar,war 등 )install : 로컬 저장소에 압축한 파일을 배포한다.deploy : 원격 저장소에 압축한 파일을 배포한다.clean 라이프 사이클빌드를 통하여 생성된 .. #3. 메이븐 설정 파일 pom.xml 설정 파일 메이븐은 빌드와 관련된 정보를 프로젝트 객체 모델 ( project object model )이라는 이름으로 정의하고 있다. 위의 정의는 크게 4가지 카테고리로 나눌 수 있다. 프로젝트 기본 정보 - 프로젝트 이름, url 등 기본적인 설정 빌드 설정 - 메이븐 빌드와 관련한 기본적인 설정을 변경하기 위한 카테고리 ( #6, #7 참고 ) - 리포팅 문서 ( #9 참고) 프로젝트 관계 설정 - 다른 라이브러리와의 관계, 프로젝트간의 관계 ( #5, #10 참고 ) 빌드 환경 - 다양한 환경에 배포하는 것이 가능해야 한다. 이와 관련된 정보를 관리하는 곳 ( #8 참고 ) - (3) ... - (6) ... - (9) ... - (10) ... - (5) ... - (12) ..... #1. 이상적인 개발 환경 이상적인 개발 환경개발 환경 설치 자동화 - JDK 설치, 이클립스 설치, 메이븐 설치등 프로젝트 초기 구축 자동화 - 의존관계 라이브러리 다운 - 의존관계 라이브러리 변경되었을 경우 프로젝트에 쉽게 반영 지속적 통합툴을 이용한 자동화 - 데이터베이스 초기화, 단위 테스트 실행 등 수동 작업을 자동화 - commit 하는 순간 단위 테스트 실행 후 피드백 전달 우리는 프로젝트 초기 구축과 관리를 편하게 해주는 Maven에 대해 알아보자. #5. 메이븐을 이용한 의존 라이브러리 관리 기존 의존 관계 라이브러리를 추가해야 하는 경우 메이븐의 의존 라이브러리 관리메이븐의 핵심 기능 중 하나이다. 하지만, 우리가 프로젝트를 진행하면서 가장 문제를 많이 일으키는 부분이기도 하다. 즉, 이 부분을 제대로 이해해야 발생한 이슈들을 쉽게 해결할 수 있다. 메이븐 저장소중앙 저장소 : 오픈 소스 라이브러리, 메이븐 플러그인을 관리하는 저장소 ( 개발자가 임의로 라이브러리 배포 불가 ) 사내 원격 저장소 : 메이븐 기반으로 프로젝트를 진행하는 경우 모든 라이브러리가 중앙 저장소에 있는게 아니다. 이처럼 중앙 저장소에 없는 라이브러리를 한 곳에 모아두기 위하여 별도의 메이븐 저장소를 설치해 관리하는 것이 가능로컬 저장소 : 메이븐을 빌드할 때 다운받은 라이브러리를 관리하는 개발자 PC의 저장소 ( U.. #6. 메이븐과 이클립스 통합 들어가기 전에....명령어 창(cmd)를 통해 메이븐 프로젝트를 만들었다. ( 전 글 참고 )이클립스를 통해 개발을 시작하자!이클립스에서 프로젝트를 만들면 Maven에서 다운받은 라이브러리를 클래스패스에 추가해야 된다??다행이 maven eclipse plugin이 메이븐 설정파일을 이용해서 이클립스 프로젝트로 변환해 주는 플러그인이 있긴 있다. 메이븐 이클립스 플러그인 이클립스는 많은 프레임워크 ( ex: git, openshift 등등 ) 와의 통합을 지원한다. 역시, maven eclipse plugin을 통해 메이븐 통합을 지원하고 있다. 어떻게 메이븐->이클립스 프로젝트 변환이 가능한가? pom.xml에는 프로젝트와 관련된 소스 디렉토리, 테스트 소스 디렉토리, 의존 관계에 있는 라이브러리 정보.. Error 모음 1. - 원인 : c:\Users\\.m2\repository 에 찾는 plugin(?)이 install 되어 있지 않아서 - 수정 : 해당 plugin을 먼저 install 해주면 됨 - 상황 : TOP IDE에 svn을 연동할 때 그냥 내 IDE에 svn을 설치하고 run configuration에 이게 필요하다고 명시함. 하지만 다른 사람들도 사용하려면 이렇게 하면 안됨 1. svn plugin이 필요하다고 명시할 곳이 어딘가? 2. 알아서 svn plugin을 설치하려면 pom.xml에 해야되는데 maven이 없는것 같음?? - 원인 : 아마 plugin이 install되지 않아서 그렇겠지..... - 해결 : 2. 3. 다른 plugin에서 업데이트 된걸 보지 않고 있는 경우 - 상황 : 저렇게.. Maven 기본 Maven이 없다면? 필요한 library 버전이 바뀌면 새로 다운을 받아서 library를 추가해줘야 한다.내가 만든 코드를 .jar로 압축해서 다른 사람들에게 배포하고 싶다. - eclipse export -> tomcat 접속 -> .jar 올리기 무한 반복.... Maven이란? - project 관리 툴 - project 정보, 관계 ( parent ) - project의 build - project lifecycle : Maven 내에서 자체적으로 정의되는 빌드 단계 ( Clean / Default / Site ) Maven Architecture 이전 1 다음