70~71일차 메이븐과 jee설정

쿠우·2022년 7월 7일
0

Java 프로그래머에게 사실상 표준이라고 할 수 있는 빌드 도구는 “Apache Maven"

-Maven은 XML으로 빌드 파일을 만든다.
-XML 기반 비교적 알기 쉽게 프로젝트에 사용할 라이브러리 등도 모두 함께 관리 해준다"
-Maven에서 명령어도 중요하지만 pom.xml이 제일 중요하다.
-의존성관리: 현재 프로젝트에 필요한 라이브러리를 설정만 하면, maven이 자동으로 중앙저장소에서 다운로드/ 로컬저장소에 저장/CLASSPATH환경변수에 다운된 모든 라이브러리 jar파일을 추가해줌으로 바로 가져다 쓸 수 있도록 해줌)
-보통 개발환경을 조성해주는 이클립스 STS는 포함되어있는 메이븐이 있다. (따로 다운안해줘도 됌)

1. 터미널에서 메이븐 프로젝트 만들기

(0)메이븐을 따로 설치해야한다.
(1)메이븐 프로젝트 생성하는 명령어
: mvn archetype:generate

쭉쭉 지나고 보면

이런 값들을 입력해야함
1) groupId - 프로젝트 속하는 그룹 식별 값. 회사, 본부, 또는 단체를 의미, 패키지 형식으로 계층을 표현. 위에서는 org.zerock를 groupId로 이용.
2) artifactId - 프로젝트 결과물의 식별 값. 프로젝트나 모듈을 의미하는 값. 위에서는 ex00을 artifactId로 이용하였다.
3) version - 결과물의 버전을 입력. 위에서는 기본 값인 1.0-SNAPSHOT을 사용하였다.
4) package - 기본적으로 생성할 패키지를 입력.별도로 입력하지 않을 경우 groupId와 동일한 구조의 패키지를 생성.

-생성 후에 폴더의 트리구조

  • (주의) 기본적으로 생성되지 않은 디렉터리라 하더라도 직접 생성해주면 됨.
    예를 들어, src/main 디렉터리에 resources 디렉터리를 생성해주면,Maven은 리소스 디렉터리로 인식. - mkdir resources

Test 수행 -> Test Class 실행 명령어
-컴파일 된 테스트 클래스들은 target/test/classes 디렉터리에 생성
-테스트 결과 리포트는 target/surefire-reports 디렉터리에 저장.
: mvn test

Packaging 수행 -> 배포 가능한 jar 파일 생성명령어
:mvn package

pom.xml에 대해 (중요)


-위 POM 파일에서 프로젝트 정보를 기술하는 태그는 다음과 같음.

	 1) <name> - 프로젝트 이름
	 2) <url> - 프로젝트 사이트 URL
	 3) POM 연관 정보는 프로젝트간 연관 정보를 기술하는데, 관련 태그는 다음과 같다.
	 4) <groupId> - 프로젝트의 그룹 ID 설정
	 5) <artifactId> - 프로젝트의 Artifact ID 설정
	 6) <version> - 버전 설정
	 7) <packaging> - 패키징 타입 설정. 
	 	위 코드의 경우 프로젝트의 결과 Artifact가 jar 파일로 생성됨을 의미. 
	 	jar 뿐만 아니라 웹 어플리케이션을 위한 war나 JEE를 위한 ear 등의 패키징 타입이 존재.
	 8) <dependencies> - 이 프로젝트에서 의존하는 다른 프로젝트 정보를 기술한다.
	 9) <dependency> - 의존하는 프로젝트 POM 정보를 기술
	10) <groupId> - 의존하는 프로젝트의 그룹 ID
	11) <artifactId> - 의존하는 프로젝트의 artifact ID
	12) <version> - 의존하는 프로젝트의 버전
	13) <scope> - 의존하는 범위를 설정
  • 의존 설정 -> <dependency> 부분의 설정

(주의) 개발자는 일일이 필요한 모듈을 다운로드 받을 필요가 없으며,
현재 코드에서 직접적으로 필요로 하는 모듈에 대해서만
<dependency>로 추가해주면 됨.
나머지 의존은 모두 Maven이 알맞게 처리.
->없으면 search.maven.org 사이트에서 POM 정보 찾기

Maven은 프로젝트의 라이프사이클 기반 프레임워크를 제공

라이프사이클의 특정 단계를 실행하려,
( mvn [단계이름] ) 명령어를 실행.

그러나,

Maven은 표준화된 라이프사이클을 제공 --> 개발자가 컴파일-테스트-패키징 등의 과정을
손으로 정의하지 않아도 되며, 개발자는 Maven이 제공하는 단계 중 필요한 단계만 실행하면 됨.
그럼, 나머지 작업(컴파일, 테스트 실행, jar 파일 생성)은 모두 Maven이 처리.


2. eclipse jee에서 메이븐 프로젝트 만들기

jee 다운받고나서

1번으로 하면 오류나가지구 2번으로 진행한다음 1번 프로젝트로 바꾸는 방법으로 진행

configure에서 들어가서 해당값대로 입력한 뒤 finish

pom.xml 수정해주고 (중간에 파일명 바꿨음) maven 업데이트

*오류 날 때 force 체크해주니까 잘 된다.

해당 폴더에 대한 Buildpath에 들어가 설정을 맞춘다

missing은 지우고 다시 맞춰준다.

create해준다.

test폴더는 test 폴더 경로로 지정해준다.

라이브러리에 maven잘 있는지 확인해주고


순서 맞춰준다.

lombok의 적용을 위해 main resources에 log4j2.xml 파일 만들어주고 적용 내용을 복사붙여넣기 해줌

이렇게 하면 끝


그렇다면 이 과정이 무슨 과정이고 왜 필요한지를 알아야 한다.

라이브러리 관리와 프로젝트 빌드 때문에 maven을 사용한다

그 와중에 DD라는 것이 오류되어 다이내믹을 사용해 우회하는

방법을 사용했고 DD에 대해서 찾은 내용!

deployment descriptor
-WEB-INF 아래에 존재하는 web.xml파일을 말한다. 배포 서술자라 부르는데, JSP나 Servlet를 위한 설정 파일이라고 한다.

테스트된 소스에 대한 수정을 최소화하고, 소스코드가 없어도 애플리케이션을 목적에 맞게 수정할 수 있으며, 보안 관련된 업무도 관리할 수 있다

여러군데에서 봤지만 잘정리된 거 같아 참고
https://myblog.opendocs.co.kr/archives/436

profile
일단 흐자

0개의 댓글