SpringFramework/BASIC

Maven프로젝트 생성 및 pom.xml 정리 및 설정 Maven의 개념 - Maven Repository/Maven폴더구조

유혁스쿨 2020. 8. 28. 23:44
728x90
반응형

 

Maven : 빌드하는 도구중 하나 (자바프로젝트를 빌드해주는 서버에서 돌아갈 수 있도록 빌드해주는 도구중 하나)

Maven의 핵심기능 : 필요한 라이브러리를 네트워크를 통해서 자동으로 다운받아주는 기능

Maven Repository라는 저장소 존재 합니다

→ 라이브러리 개발자들이 미리 등록해놓으면 pom.xml이그것을 찾아 프로젝트에 포함시켜줍니다.

설정 코드를 통해 바로 다운받을수 있도록 빌드도구 메이븐을 사용합니다

 

1. 구글검색창에 MavenRepository 검색

2. mvnrepository.com

3. 검색창에 spring-context 검색(스프링의 핵심모듈)


Maven Project를 생성해 보도록 하겠습니다.

 

file-new-create a Maven Project

file-new-create a Maven Project

 

Create a simple project 선택

 

Create a simple project 선택

 

→ 체크박스에 체크를 하시면 몇가지 귀찬은 설정들을 이클립스가 건너 뛰어줍니다

[group id]: 프로젝트가 혼자서 진행할수도 있지만 대부분이 팀으로 진행합니다

너희 팀이 무엇인지 알려줘, 우리 팀을 식별할 수 있는게 id입니다.

id라고 함은 기본적으로 중복이 되면 안됩니다. 그래서 보통 groupId는 도메인역순 즉, 도메인주소를 거꾸로작성합니다. 도메인 주소라는것은 중복이 없기 때문입니다.

우리가 만약 Spring.com을 운영하고있다면 com.spring으로입력해줍니다.

 

[Artifact id]: 프로젝트를 유일하게 식별할 수 있게해줍니다.

프로젝트를 식별할 수 있게 해주는 아이디이며 프로젝트의 이름이 됩니다.

예) 우리가 요기요면 요기요,우리가 배민이면 배민

Basic이라고 지정해 준 후 [Finish]버튼을 클릭합니다.

 

좌측에 Basic이라는 프로젝트가 생성됨과 동시에

우측 하단에 초록색 배터리게이지와 함께 열심히 메이븐을 빌드하는게 보입니다.

 

 


 

Maven프로젝트에서 Maven의 폴더구조를 알아보겠습니다

 

Maven프로젝트에서 Maven의 폴더구조

 

 

 

[src/main/java]

- 자바의 클래스,인터페이스 파일들을 저장하는 공간입니다.

[src/main/resources]

- 스프링에 대한 설정파일 xml파일들을 저장하는 공간입니다.

ㄴ메이븐프로젝트는 스프링설정을 전부 다 xml파일로 설정합니다

- xml파일들이 들어갈 공간이다 라고 쉽게 기억을 하시면 좋습니다.

- DB정보를 담고있는 프로퍼티 파일들, 자바이외의 설정파일들이 들어가는 공간이기도 합니다.

[src/test/java]

- test를 수행할 수 있는 곳 → 예를들어 단위테스트...

[JRE System Library]

- 자바 표준라이브러리, 스트링객체,Arrays,List,Map,System,Object

[src폴더]

- static한 파일들 예를들어 img,html,css,javascript파일들을 저장하는 폴더입니다.

 

[pom.xml]

- 메이븐의 핵심파일입니다.

- 라이브러리 다운을위한 웹에서 내려받기위한 설정들을 이파일에서 진행하게 됩니다.

POM은 "Project Object Model"의 약자로, 프로젝트의 다양한 정보를 처리하기 위한 객체 모델입니다.

pom.xml에는프로젝트 설정을 XML 태그로 기술하고 있습니다.


pom.xml 코드 구성

 

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.spring</groupId>
	<artifactId>basic</artifactId>
	<version>0.0.1-SNAPSHOT</version>
</project>

 

프로젝트를 처음 만들었을 때 pom.xml파일에 선언되있는 태그와 속성들입니다.

아래에서 차근차근 간단하게 분석해보도록 하겠습니다.

 

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
</project>

pom.xml은<project>라는 루트 태그 내에 모든 정보를 기술하게 됩니다.

이 <project> 태그는 xmlns / xmlns:xsi / sxi : schemaLocation 세세한 것들이 속성으로 여러 붙어 있는데,

이들은 모두 정해진 값이므로, 복사해서 쓰면 된다고 생각하면 됩니다.

필요에 따라 수정할 부분은 없습니다.

이 후에는 필요한 정보를 태그로 기술해 나갈뿐입니다.

 

좀 더 불필요한 것을 모두 제거하고 나면 기본 코드는 다음과 같습니다.

	<modelVersion>4.0.0</modelVersion> //POM모델 버전입니다. 이것은 4.0.0이라고 설정합니다.
	<groupId>com.spring</groupId>
	<artifactId>basic</artifactId>
	<version>0.0.1-SNAPSHOT</version>

 

<modelVersion>4.0.0</modelVersion>

POM모델 버전입니다. 이것은 4.0.0이라고 설정합니다.

<groupId>com.spring</groupId>

프로젝트를 만들 때 입력했던 그룹ID입니다. 제작자와 회사, 단체 등을 식별하기 위해 쓰입니다.

<artifactId>basic</artifactId>

프로젝트를 생성할 때 입력했던 ArtifactId입니다. 프로젝트에 할당한 고유 ID이며 프로젝트 명이기도 합니다.

<version>0.0.1-SNAPSHOT</version>

프로그램 버전입니다. 기본적으로 1.0-SNAPSHOT이 설정되어 있습니다.

 

이렇게 기본적으로 프로젝트를 생성할 때 입력하거나 설정했던 속성값들이 pom.xml에 등록됩니다.


pom.xml을 통한 Spring의 핵심모듈 및 라이브러리 다운진행해 보도록 하겠습니다

 

pom.xml에 의존 라이브러리를 다운 받을 때에는 꼭 <dependencies> </dependencies>태그를 선언해준 후

그 안에 다운받을 의존 라이브러리 코드를 작성해줘야 합니다

의존 라이브러리를 한곳에 모아 기술하기 위한 것 입니다.

각각의 의존 라이브러리 정보는 <dependency> 태그를 사용하여 작성합니다.

이 <dependency> 태그를 필요한만 큼 <dependencies> 태그 안에 기술합니다.

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.spring</groupId>
  <artifactId>basic</artifactId>
  <version>0.0.1-SNAPSHOT</version>

<dependencies>
<!-- 의존 라이브러리 -->
</dependencies>

</project>

의존 라이브러리 등록을 위한<dependencies></dependencies> 태그 작성

 

 

Spring의 핵심모듈 다운을위해 코드를 작성합니다

mvnrepositrory.com에서 spring-context 검색 후 가장 많이 사용되는것으로 클릭후 접속합니다.

jre 버전 및 메이븐 컴파일러 버전 설정 소스를 복사후 pom.xml에붙여넣기합니다.

 

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.spring</groupId>
  <artifactId>basic</artifactId>
  <version>0.0.1-SNAPSHOT</version>

<dependencies>
	<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
	<!-- Spring Context 모듈 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>5.2.6.RELEASE</version>
	</dependency>
</dependencies>

</project>

spring-context 설정 모듈 등록

 

 

다음으로는 메이븐 컴파일러 버전을 설정하는 코드를 작성해 보도록 합니다

매이븐도 도구중의 하나이고 어떻게보면 자바소스자바라이브러리 중의 하나입니다

메이븐을 컴파일할때 어떤 자바버전을 사용할것인가 컴파일러에대한 버전설정을 해줍니다.

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.spring</groupId>
  <artifactId>basic</artifactId>
  <version>0.0.1-SNAPSHOT</version>

<dependencies>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>5.2.6.RELEASE</version>
	</dependency>
</dependencies>

<!--메이븐 컴파일러와 자바 라이브러리 버전 설정-->
<build>
	<plugins>
		<plugin>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.5.1</version> <!-- 메이븐의 버전을 3.5.1을 사용하겠다. -->
			<configuration>
				<source>1.8</source>
				<target>1.8</target> <!-- 자바의 컴파일러를 1.8버전을 사용하겠다. -->
				<encoding>utf-8</encoding>
			</configuration>
		</plugin>
	</plugins>
</build>

</project>

메이븐 컴파일러 붙여넣기 후 저장

 

 

프로젝트 우측마우스클릭 - maven - update project / 단축키 Alt+F5

 

 

 

OK버튼 클릭 후 Maven Update 진행

 

 

정상적으로 업데이트가 된다면 우선적으로 JRE System Library가 해당 버전으로 변경됩니다.

Maven Dependencies 추가된것을 확인할수 있다

이곳에는 스프링의 핵심모듈들이 jar파일로 설치된것을 확인할 수 있습니다.

 

 

 

JRE System Library와 Maven Dependencies가 pom.xml에 설정한대로 적용에 성공한 모습

 

 

 

 

728x90
반응형