[SPRING] 1. 메이븐 시작하기

Yuri Lee·2022년 6월 13일
0

스프링

목록 보기
2/13

메이븐을 사용하는 이유?
의존성?

메이븐 설치

  1. http://maven.apache.org/ 사이트에서 다운로드
  2. c:\devtool 처럼 찾기 쉬운 위치에 압축 풀기
    -> apache-maven-3.5.2 폴더 생성됨
  3. 환경변수 설정
    -> PATH : PATH 경로에 "[메이븐설치폴더]\bin" 추가
  4. cmd mvn -version 으로 버전정보 출력

그레이들 설치

  1. http://gradle.org/releases/ 사이트에서 최신 버전 그레이들 다운로드
  2. c:\devtool 처럼 찾기 쉬운 위치에 압축 풀기
    -> apache-maven-3.5.2 폴더 생성됨
  3. 환경변수 설정
    -> PATH : PATH 경로에 "[그레이들설치폴더]\bin" 추가
  4. cmd gradle -version 으로 버전정보 출력

메이븐 기초 안내

1. 메이븐 아키타입을 이용한 프로젝트 생성

명령 프롬프트에서 다음 명령어 실행

mvn archetype:generate

Choose a number : 6

'groupId' : net.madvirus (madvirus.net 을 거꾸로 한것(패키지 형식), 다른 이름이어도 됨)

'artifactId' : sample (프로젝트 이름)

2. 자바 버전 수정

pom.xml 에 아래 코드 추가

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
	</plugins>
</build>

*컴파일
cmd 프로젝트 폴더 위치에서 mvn compile 입력

*테스트
mvn test

*패키징 (배포가능 jar파일 만들기)
mvn package

3. pom 파일 기본

메이븐 프로젝트를 생성하면 pom.xml 파일이 프로젝트 루트폴더에 생성된다.

  • 프로젝트 정보 : 프로젝트의 이름, 개발자 목록, 라이센스 등의 정보를 기술
  • 빌드 설정 : 소스, 리소스, 라이프 사이클별 실행할 플러그인 등 빌드와 관련된 설정을 기술
  • 빌드 환경 : 사용자 환경별로 달라질 수 있는 프로파일 정보를 기술
  • pom 연관 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 포함되고 있는 하위 모듈 등을 기술

3-1 pom.xml 태그

  • < packaging> : 패키징 타입설정, 프로젝트의 결과가 해당 형식의 파일로 생성됨을 의미함
  • < dependencies> : 이 프로젝트에서 의존하는 다른 프로젝트 정보를 기술
  • < dependency> : 의존하는 프로젝트 pom 정보를 기술
    *** < scope> : 의존하는 범위를 설정

4. 의존 설정

메이븐을 사용하지 않을 경우 개발자들은 코드에서 필요로 하는 라이브러리를 각각 다운로드 받아야한다. 하지만, 메이븐을 사용하면 코드에서 직접 사용하는 모듈에 대한 의존만 추가하면 된다. 그러면 메이븐은 해당 모듈 뿐 아니라 그 모듈이 의존하는 라이브러리를 자동으로 처리해준다.

4-1 의존의 scope : comile, runtime, provided, test

< scope> 는 의존하는 모듈이 언제 사용되는지 설정한다.

  • compile : 컴파일할 때 필요
  • runtime : 런타임에 필요, jdbc 드라이버 등이 예가 된다.
  • provided : 컴파일할때 필요하지만, 실제 런타임 때에는 컨테이너 같은 것에서 기본으로 제공되는 모듈임을 의미한다. 배포시 제외된다!
  • test : 테스트 코드를 컴파일 할때 필요

5. 메이븐 라이프사이클과 플러그인 실행

메이븐은 프로젝트의 빌드 라이프사이클을 제공한다. compile, test, package는 모두 빌드 라이프사이클에 속하는 단계이다.

profile
개발자 이유리

0개의 댓글