본문 바로가기
웹 프로그래밍 기초/자바기반의 웹&앱 응용SW 개발자

자바기반의 웹&앱 응용 SW개발자 양성과정 66일차 -98

by oncerun 2020. 6. 16.
반응형

 

 

Maven 프로젝트의 기본 디렉터리 구조


archetype:generate 골이 성공적으로 실행되면  artifactId에 입력한 값과 동일한 이름의 폴더가 생성된다.  다음에는 프로젝트 명 즉 artifactId를 javaprj로  이클립스를 이용해 만든 파일 구성이다

  

연습용이므로 skip archetype seletion 체크박스를 클릭했다.  

 

 

기본적으로 생성되는 폴더를 포함한 Maven 프로젝트의 주요 폴더는 다음과 같다.

 

  • src/main/java - 자바 소스 파일이 위치한다.
  • src/main/resources - 프로퍼티나 XML 등 리소스 파일이 위치한다. 클래스 패스에 포함된다.
  • src/main/webapp - 웹 애플리케이션 관련 파일이 위치한다. (WEB-INF 폴더, JSP 파일 등)
  • src/test/java - 테스트 자바 소스 파일이 위치한다.
  • src/test/resources - 테스트 과정에서 사용되는 리소스 파일이 위치한다. 테스트 시에 사용되는 클래스 패스에 포함된다.

기본적으로 생성되지 않은 폴더라 하더라도 직접 생성해주면 된다. 예를 들어 src/main 폴더에 resources 폴더를 생성해주면 Maven은 리소스 폴더로 인식한다.

 

pom.xml에서 메이븐에대한 설정을 변경할 수 있는데 다음은 설정 변경에 대한 정보이다.

 

  • project - pom.xml 파일의 최상위 엘리먼트
  • modeVersion - POM 모델의 버전 , 가장 최근 버전이 4.0.0이며 변경되지 않을 경우 수정할 필요가 없다.
  • groupid - 프로젝트를 생성하는 조직의 고유 아이디를 결정합니다. 보통 도메인 이름을 사용합니다.
  • artifactid - 프로젝트를 실제로 식별하는 유일한 아이디입니다.  groupid안에서 구별되는 프로젝트 이름입니다.
  • packaging - 프로젝트를 어떤 형태로 패키징 할지 결정합니다. jar, war, ear, pom 등의 존재합니다.
  • version - 프로젝트의 버전입니다. 개발이 완료된 경우 1.0 2.0으로 사용하지만 개발 중에는 SANPSHOT을 접미사로 사용합니다. SANPSHOT을 사용할 경우 라이브러리를 다른 방식으로 관리합니다.
  • name - 프로젝트 이름
  • url - 프로젝트 사이트가 존재하면 등록합니다.
  • dependencies - 프로젝트와 의존관계에 있는 라이브러리를 자동적으로 등록, 삭제 등 관리하는 역할을 합니다.
  • bulid - 프로젝트 빌드와 관련한 기본적인 소스 디렉터리 구조 , 빌드 산출물 디렉터리 구조 , 빌듯이 사용할 플러그인 정보를 관리합니다.
  • sourceDirectory - 실제 서비스를 담당하는 자바 소스 코드를 관리하는 디렉토리 , 기본 값은 src/main/java
  • testSourceDirectory -테스트 소스를 관리하기 위한 디렉터리입니다. 메이븐 빌드 툴은 서비스 소스코드와 테스트 소스 코드를 분리해서 관리하며, 배포 시 테스트 소스코드는 같이 배포되지 않게 합니다. 기본값은 src/test/java
  • outputDitectory - sourceDirectory의 소스를 컴파일한 결과물이 위치하는 디렉토리입니다. 기본 값은 target/classes
  • testOutputDirectory - testSoureDirectory의 소스를 컴파일한 결과물이 위치하는 디렉토리입니다. 기본값은 target/classes
  • resources - 서비스에 사용되는 자원을 관리하는 디렉터리. 기본 값은 src/main/resources
  • pluginManagement -빌드 설정 파일에서 관리하는 플러그인 목록, 이 엘리먼트에 설정되어 있다고 해서 반드시 사용하는 것은 아니다.
  • repositories - 빌드할 때 접근한 저장소의 위치를 관리한다. 메이븐의 기본 저장소 URL은 repo1.maven.org/maven2이다

 

 

Maven은 프로젝의 라이프 사이클 기반 프레임 워크를 제공합니다.

라이프 사이클은 clean, build(defalut), site 의 세 가지 라이프 사이클이 존재하며 각 라이프 사이클은 phase 논리적 단계별로 구성되어 있습니다.  우리는 각 단계별로 실행되는 플러그인 goal이 정의되어있어 단계마다 알맞은 작업이 실행되며 변경하고 싶은 경우 플러그인을 변경하여 손쉽게 변경할 수 있습니다.

 

각 단계 (Phase)
generate-sources
process-sources
generate-resources
process-resources
compile
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile
test
package
install
deploy

만약 여기서 package라는 명령을 실행한다면 package전의 모든 단계를 실행합니다.

각 단계가 실행될경우 각 단계에 묶인 골(goal)이 실행됩니다.

반응형

댓글