제3 장 Maven 사용 입문

6043 단어 mavenBuild
1.  Make 의 Makefile, Ant 의 build. xml 처럼 Maven 프로젝트 의 핵심 은 pom. xml 입 니 다.POM (Project Object Model) 은 프로젝트 의 기본 정 보 를 정의 하고 프로젝트 를 어떻게 구축 하 는 지, 프로젝트 의존 도 를 설명 하 는 데 사용 합 니 다.
 
2.  pom. xml 예:
 
<?xml version=”1.0” encoding=”UTF-8”?>
<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.juvenxu.mvnbook</grouId>
        <artifactId>hello-world</artifactId>
        <version>1.0-SNAPSHOT</version>
        <name>Maven Hello World Project</name>
</project>
 
    procject 요 소 는 모든 pom. xml 의 루트 요소 입 니 다. POM 과 관련 된 네 임 스페이스 와 xsd 요 소 를 설명 합 니 다. 이 속성 들 이 필요 한 것 은 아니 지만 이 속성 을 사용 하면 제3자 도구 (예 를 들 어 IDE 의 XML 편집기) 가 POM 을 빠르게 편집 하 는 데 도움 을 줄 수 있 습 니 다.model Version 은 현재 POM 모델 의 버 전 을 지정 하 였 으 며, Maven 2 및 Maven 3 에 있어 서 는 4.0.0 에 불과 합 니 다.
 
3.  groupId, artifactId 와 version 세 가지 요 소 는 하나의 프로젝트 의 기본 적 인 좌 표를 정의 합 니 다. Maven 의 세계 에서 모든 jar, pom 또는 war 는 이러한 기본 적 인 좌 표를 바탕 으로 구 분 됩 니 다.groupId 는 프로젝트 가 어느 그룹 에 속 하 는 지 정의 합 니 다. 이 그룹 은 프로젝트 가 있 는 조직 이나 회사 와 관련 이 있 습 니 다.예 를 들 어 com. googlecode. myapp 또는 com. mycom. myapp.artifactId 는 현재 Maven 프로젝트 가 그룹 에서 유일한 ID 를 정의 합 니 다. 예 를 들 어 my app - util 이나 my app - domain 등 입 니 다.Version 은 1.0 - HHNAPSHOT 와 같은 프로젝트 의 현재 버 전 입 니 다.SNAPSHOT 은 스냅 샷 이라는 뜻 으로 아직 개발 중 이 며 불안정한 버 전이 다.
 
4.  기본적으로 Maven 은 프로젝트 의 메 인 코드 가 src / main / 자바 디 렉 터 리 에 있다 고 가정 합 니 다.Maven 은 자동 으로 이 디 렉 터 리 를 찾 아 프로젝트 의 주 코드 를 찾 습 니 다.일반적으로 프로젝트 에서 자바 류 의 패 키 지 는 프로젝트 의 groupId 와 artifactId 를 바탕 으로 더욱 뚜렷 하고 논리 적 이 며 검색 하기에 편리 해 야 한다.
 
5.  프로젝트 루트 디 렉 터 리 에서 mvn clean copile 을 실행 하면 프로젝트 의 정리 와 컴 파일 작업 을 수행 할 수 있 습 니 다.Maven 은 clean: clean 작업 (clean 플러그 인의 clean 목표) 을 먼저 수행 하고 target / 디 렉 터 리 를 삭제 합 니 다. 기본 적 인 상황 에서 Maven 이 구축 한 모든 출력 은 target / 디 렉 터 리 에 있 습 니 다.이 어 resources: resources 작업 을 수행 합 니 다.마지막 으로 copiler: copile 작업 을 수행 하고 프로젝트 의 주 코드 를 target / classes 디 렉 터 리 로 컴 파일 합 니 다.
 
6.  Maven 프로젝트 의 기본 테스트 코드 디 렉 터 리 는 src / test / 자바 입 니 다.Junit 를 사용 하려 면 POM 에 의존 도 를 추가 해 야 합 니 다.
   
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.7</version>
    <scope>test</scope>
  </dependency>
</dependencies>
 
이 성명 이 있 으 면 Maven 은 자동 으로 중앙 창고 에서 (http://repo1.maven.org/maven2) 주 니 트 - 4.7. jar 를 다운 받 았 다.scope 는 의존 범 위 를 지정 했다.Test 는 이 의존 이 테스트 에 만 유효 하 다 고 표시 합 니 다. (테스트 코드 만 import JUnit 이 가능 합 니 다.)scope 기본 값 은 copile 입 니 다. 메 인 코드 와 테스트 코드 에 모두 유효 합 니 다.
 
7.  화면 음악 n clean test 는 clean: clean, resources: resources, copiler: copile, resources: testResources, copiler: testCompile 및 surefire: test 를 실행 합 니 다.Maven 은 test 를 실행 하기 전에 실 행 됩 니 다. resources: resources, copiler: copile, resources: testResources 및 copiler: testCompile.(프로젝트 주 자원 처리, 주 코드 컴 파일, 테스트 자원 처리, 테스트 코드 컴 파일 등 작업)
 
8.  Maven 의 핵심 플러그 인 중 하나 인 copiler 플러그 인 은 기본적으로 자바 1.3 컴 파일 만 지원 하기 때문에 POM 에서 자바 5 를 지원 하도록 설정 해 야 합 니 다.   
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.5</source>
        <target>1.5</target>
      </configuration>
    </plugin>
  </plugins>
</build>
 
9.  테스트 코드 는 컴 파일 을 통 해 target / test - classes 에서 바 이 너 리 파일 을 생 성 합 니 다.surefire 는 Maven 세계 에서 테스트 를 수행 하 는 플러그 인 입 니 다.
 
10.  mvn clean package 를 실행 하여 포장 할 수 있 습 니 다. 포장 형식 이 지정 되 지 않 으 면 기본 jar 를 사용 합 니 다.jar: jar 는 프로젝트 메 인 코드 의 바 이 너 리 폴 더 를 패키지 로 만들어 artifact - version. jar 의 이름 규범 을 target / 출력 디 렉 터 리 에 표시 합 니 다.
 
11.  mvn clean install 을 실행 하여 프로젝트 출력 jar 를 Maven 로 컬 창고 에 설치 합 니 다. 그 전에 jar: jar 를 실행 한 다음 install: install 을 실행 합 니 다.
 
12.  test 를 실행 하기 전에 copile 을 먼저 실행 하고 package 를 실행 하기 전에 test 를 먼저 실행 하 며 인 스타 그램 을 실행 하기 전에 package 를 먼저 실행 합 니 다.
 
13.  실행 가능 한 jar 패 키 지 를 만 들 기 위해 서 는 maven - shade - plugin 을 통 해 POM 에 다음 과 같이 설정 해 야 합 니 다.
 
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>1.2.1</version>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>shade</goal>
      </goals>
      <configuration>
      <transformers>
        <transformer implementation=”org.apache.maven.plugins.shade.resource.ManifestResourceTransformer”>
          <mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass>
        </transformer>
      </transformers>
    </configuration>
  </executions>
</plugin>
 
14.  우 리 는 프로젝트 의 기본 디 렉 터 리 구조 (주 코드 디 렉 터 리, 테스트 코드 디 렉 터 리 등) 와 pom. xml 파일 내용 을 프로젝트 의 골조 라 고 부 릅 니 다.우 리 는 mvn archetype: generate 로 프로젝트 의 골격 을 생 성 할 수 있다.이 명령 은 Maven 2 에서 안전 하지 않 습 니 다. 최신 archetype 플러그 인 버 전 을 자동 으로 다운로드 하기 때문에 불안정 한 SNAPSHOT 버 전 을 받 을 수 있 습 니 다.그러나 Maven 3 에 서 는 사용자 가 지정 한 버 전이 없어 도 Maven 은 최신 안정 버 전 만 분석 합 니 다.Maven 2 에 서 는 mvn org. apache. maven. plugins: maven - archetype - plugin: 2.0 - alpha - 5: geneate 콜론 의 구분 형식 을 사용 하 는 것 을 권장 합 니 다. groupId: artifactId: version: goal.org. apache. maven. plugins 는 Maven 공식 플러그 인의 groupId 입 니 다.

좋은 웹페이지 즐겨찾기