[Spring] Maven (pom.xml 설정)

Gabriela·2023년 9월 26일
0

Spring

목록 보기
2/8

Maven


  • Maven 레파지토리(https://mvnrepository.com/)에 각종 jar 파일을 보관하고 있다.
  • pom.xml 파일에 등록된 <dependency> 태그에 의해서 jar 파일이 자동으로 다운로드 된다.
  • pom.xml 파일을 수정하면 다운로드로 연결되므로 자주 저장하지 않는 것이 좋다.
  • 다운로드 받은 jar 파일들은 C:\Users\사용자\.m2\repository 디렉터리에 저장된다.

jar 파일에 문제가 발생한 경우

  • STS끈다.
  • C:\Users\사용자\.m2\repository 디렉터리를 지운다.
  • 다시 STS를 켠다.
  • 새로 다운로드 될 때까지 기다린다.
  • 프로젝트 우클릭 - [Maven] - [Update Project]

빌드 툴


  • 빌드
    • 소스코드 파일을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 과정이다.
    • 최종적으로 프로젝트를 하나의 툴로 만들어내는 것을 의미한다.
    • 프로젝트를 배포할 수 잇게 war 파일로 만든다.

WAR

  • .war
    (Web application ARchive, 웹 애플리케이션 저장소)
  • 웹 애플리케이션을 이루는 자원들을 압축한 파일이다.
    (배포할때 사용)

주요 빌드 툴

  • 메이븐(Maven)
  • 그래들(Gradle)

Maven 프로젝트 특징

  • 각종 라이브러리(다양한 .jar)를 파일 하나가 대신 해주는 기능이 있다.
    (알아서 jar 파일을 갖고 온다.)
  • jar파일을 준비하는 대신 파일 준비를 한다. (pom.xml)
  • pom.xml : xml이라 태그 형태로 존재한다. (제공되는 태그 사용)

Maven Project 구조

  • src/main/java
  • src/main/resources
  • src/test/java
  • src/test/resources
  • src/main/webapp
  • 구조 확인

Maven Project 파일 배치

파일설명
src/main/java자바 소스 파일
src/main/resources리소스 파일(프로퍼티, XML 등)
src/test/java자바 테스트 코드(단위 테스트, 통합 테스트)
src/test/resources자바 테스트 과정에 필요한 리소스 파일
src/main/webapp웹 애플리케이션 관련 파일 (resources 디렉터리(HTML/CSS/JS 등), WEB-INF 디렉터리(JSP 등)

pom.xml

  • 메이븐 프로젝트 정보 : 프로젝트 이름, 개발자 목록, 라이선스 정보 등
  • 빌드 설정 : 빌드 툴, 소스/리소스, 플러그인 등
  • 빌드 환경 : 사용자의 환경마다 달라질 수 있는 프로파일 정보
  • POM 연관 정보 : 의존 프로젝트, 상위 프로젝트, 하위 모듈 등

pom.xml 주요 태그

태그설명
<groupId>프로젝트 그룹 Id
<artifactId>프로젝트 아티팩트 Id (컨텍스트)
<name>프로젝트 이름
<packaging>패키징 타입 (war, jar)
<properties>버전 및 속성 관리
<dependencies>프로젝트가 참조하는 의존 프로젝트들
<dependency>개별 의존 프로젝트
<build>빌드에서 사용할 플러그인

top level package, artifactId는 contextPath가 된다.

<groupId>com.gdu</groupId>
<artifactId>app01</artifactId>

프로젝트 이름

<name>01_IoC</name>

deploy(배포) file

<packaging>war</packaging>

프로젝트 버전

<version>1.0.0-BUILD-SNAPSHOT</version>

pom.xml 최신화 작업


Property

  • 속성버전에 따른 디펜던시(jar)를 다운로드 받는다.
  • springframework 버전 : 2021년 01월 버전
  • org.aspectj, org.slf4j 버전 : springframework 버전과 맞추거나 이전 버전을 사용
작성된 버전 사용방법변경 후
${java-version}11으로 변경된다.
${org.springframework-version}5.3.3으로 변경된다.
${org.aspectj-version}1.9.6으로 변경된다.
${org.slf4j-version}1.7.30으로 변경된다.
<properties>
	<java-version>11</java-version>
	<org.springframework-version>5.3.3</org.springframework-version>
	<org.aspectj-version>1.9.6</org.aspectj-version>
	<org.slf4j-version>1.7.30</org.slf4j-version>
</properties>


Servlet

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>4.0.1</version>
	<scope>provided</scope>
</dependency>

  • JSP version
<dependency>
	<groupId>javax.servlet.jsp</groupId>
	<artifactId>javax.servlet.jsp-api</artifactId>
	<version>2.3.3</version>
	<scope>provided</scope>
</dependency>


Test

  • JUnit version
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.13.2</version>
	<scope>test</scope>
</dependency>    

  • maven-compiler-plugin 에서 java-version 수정
<source>${java-version}</source>
<target>${java-version}</target>


저장 후 프로젝트 업데이트 하기

  • 프로젝트 우클릭 - [Maven] - [Update Project]

✍️ 디펜던시는 손으로 작성하지 않는다. 필요한 디펜던시Maven Repository 사이트에서 검색 - 복사 - 붙여넣기 한다.⭐


👉pom.xml변경 예시(깃허브 클릭)


profile
개발이 세상에서 제일 재밌어요

0개의 댓글