프로그래밍공부노트

Day - 30, 31(MAVEN) 본문

카테고리 없음

Day - 30, 31(MAVEN)

SANGJIN-YU 2021. 3. 26. 12:20
반응형

 1) 메이븐이 지원하는 기능

빌드

문서화

리포팅

의존관계

소스코드

관리릴리즈

배포

   

2) 메이븐의 장점

    - 의존 관계 라이브러리 관리 기능 : 라이브러리와 라이브 관계를 가지고 개발

    - 모든 프로젝트가 일관된 디렉토리 구조와 빌드 프로세스

    - 메이븐은 다양한 plugin을 제공해 줌

    - zip 파일을 통핞 archive배포 : 전사적으로 사용할 프로그램 템플릿 

 

3) 메이븐의 빌드 구조

    - 메이븐 빌드는 소스 코드와 테스트 코드를 분리하여 관리

    - 기본소스 디렉터리는 src/main/java

    - 기본테스트 디렉토리는 src/test/java

 **GROUP ID, Artifact ID는 프로젝트를 생성하는 개발자가 임의로 변경하여 작성

 **GROUP ID는 프로젝트를 구별하는 용도로 사용 Artifact ID는 프로젝트명으로 사용 

 **일반적으로 그룹 아이디는 회사 도메인명, 아티팩트아이디는 프로젝트명

 

 4) Eclipse에서 Maven 프로젝트 생성

    - Eclipse > perspective > javaEE로 변경 > 

    - File > new > Maven Project > next

      Category는 Internal 선택,  Group ID 는 org.apache.maven.archetypes, ArchitectId : maven-architype-webapp, version 1.0

    - 임의로 사용할 그룹아이디와 아키팩트 아이디를 작성

 

  1. Maven Project 생성
  2. src → main → WEB-INF → web.xml → dynamic web-module 을 tomcat 모듈로 바꿈
    (https://mrgamza.tistory.com/714) → tomcat 8.5 → dtd 3.1로 변경
  3. 이클립스 종료 → 사용중인 워크스페이스 → project폴더 → .settings 폴더 → xml(facet.core.xml) 열기 → java version / web-module version을 현재 세팅된 버전으로 변경
  4. 이클립스 실행 → 프로젝트 오른쪽 버튼 → properties → projects facets → java version, runtime server 변경 확인 → tomcat 연결
  5. properties → comliper 확인 변경
  6. pom.xml 열기 → 마지막줄 쯤에 build 태그 안에 아래 내용 넣기
    <plugins>
    <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.5.1</version>
    <configuration>
    <source>11</source>
    <target>11</target>
    </configuration>
    </plugin>
    </plugins>
  7. 프로젝트 오른쪽 버튼 → Maven → update Maven 실행
  8. 프로젝트 오른쪽 버튼 → Run As → Run on Server

 

 5) 메이븐의 디렉토리 구조

 6) 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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.min.edu</groupId>
  <artifactId>20210325_MavenProject</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>20210325_MavenProject Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
  
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>
   <dependency>
       <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
       <version>3.5.3</version>
   </dependency>
  </dependencies>
  <build>
  	<finalName>20210325_MavenProject</finalName>
	<plugins>
		<plugin>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.5.1</version>
			<configuration>
				<source>11</source>
				<target>11</target>
			</configuration>
		</plugin>
	</plugins>
  </build>
</project>

project pom.xml의 최상위 elements

model version : pom.xml의 version

GroupID : 프로젝트를 생성하는 조직의 고유 ID

Artifact ID : 프로젝트를 식별하는 프로젝트명

package : 메이븐을 통해 배포될 최종 형태

version : final name이 없을경우 배포할때의 파일명

name : 프로젝트 명

url : 프로젝트의 사이트가 있다면 url을 동록 

dependencies : 프로젝트에서 사용하는 의존관계가 있는 라이브러리를 선언하여 repository에 저장

 

build : maven의 빌드를 할때 사용하는 설정 

final name : Maven을 통해 배포 (Deploy) 할때 생성되는 WAR파일의 이름

 

 8. 메이븐에서 제공하는 Life-Cycle

    - 컴파일, 테스트, 압축, 배포를 담당하는 라이프사이클(생명주기)

반응형