일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 자바
- html
- mybatis
- 자바스크립트
- 정규화표현식
- jquery
- jdbc
- SQL
- controller
- DB
- 환경설정
- jsp
- 알고리즘
- for문
- interface
- regex
- JCF
- 자료구조
- jar
- Selector
- scope
- java
- 형변환
- extends
- Set
- 개선
- 참조타입
- iBATIS
- JavaScript
- String
- Today
- Total
프로그래밍공부노트
Day - 30, 31(MAVEN) 본문
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
- 임의로 사용할 그룹아이디와 아키팩트 아이디를 작성
- Maven Project 생성
- src → main → WEB-INF → web.xml → dynamic web-module 을 tomcat 모듈로 바꿈
(https://mrgamza.tistory.com/714) → tomcat 8.5 → dtd 3.1로 변경 - 이클립스 종료 → 사용중인 워크스페이스 → project폴더 → .settings 폴더 → xml(facet.core.xml) 열기 → java version / web-module version을 현재 세팅된 버전으로 변경
- 이클립스 실행 → 프로젝트 오른쪽 버튼 → properties → projects facets → java version, runtime server 변경 확인 → tomcat 연결
- properties → comliper 확인 변경
- 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> - 프로젝트 오른쪽 버튼 → Maven → update Maven 실행
- 프로젝트 오른쪽 버튼 → 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
- 컴파일, 테스트, 압축, 배포를 담당하는 라이프사이클(생명주기)