<div class="warning"> 이 글은 자바지기님의 블로그에 있는 maven강좌를 개인적으로 공부하고 정리한 내용입니다.

모든 권한은 자바지기님께 있고 원문은 해당 블로그를 참고하시기 바랍니다. </div>

pom.xml 파일의 설정값을 설명하는 페이지 #

- http://maven.apache.org/ref/current/maven-model/maven.html

maven-user 위키 페이지#

- http://docs.codehaus.org/display/MAVENUSER/Home

maven으로 템플릿 형태의 java프로젝트 생성#

mvn archetype:create -DgroupId=net.javajigi -DartifactId=mysample

maven으로 템플릿 형태의 웹 애플리케이션 생성#

mvn archetype:create -DgroupId=net.javajigi -DartifactId=mywebapp \ 
-DarchetypeArtifactId=maven-archetype-webapp

샘플 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>kr.or.openframework</groupId>
  <artifactId>mywebapp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>mywebapp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>mywebapp</finalName>
  </build>
</project>

packaging 에는 현재 war가 셋팅되어 있다. 선택 가능한 값은 jar, war, ear이다.

디폴트로 사용가능한 goal#

- 참고 URL http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
  • mvn compile
  • mvn test-compile
  • mvn test
  • mvn package
-> packaging값에 따라 jar, war, ear파일로 패키징
  • mvn install
  • mvn deploy

maven에서 사용할 의존성 라이브러리#

http://www.ibiblio.org/maven/ 에서 maven에서 사용할 의존성 라이브러리를 확인할수 있다.

http://mvnrepository.com/ 에서는 외부 라이브러리 검색을 할수 있고 해당 라이브러리를 선택하면 pom.xml 파일에 추가할 설정값을 표시해준다.

로컬 repository 변경#

MAVEN_HOME/conf 밑의 settings.xml 파일을 열어 다음처럼 설정을 변경하거나 추가해준다.

<localRepository>D:/Repositories/MavenRepository</localRepository>

의존성 라이브러리의 scope#

  • compile : scope를 설정할지 않았을 때의 디폴트 scope이다. 컴파일 시에도 사용되며, 배포시에도 같이 배포되어야 하는 라이브러리이다.
  • provided : JDK가 컨테이너에 의하여 제공되는 라이브러리이다. 예를 들어 servlet.jar의 경우 Servlet 컨테이너에 의하여 제공되기 때문에 이 scope를 사용한다.
  • runtime : 이 scope는 말 그대로 컴파일 시에는 사용되지 않지만 애플리케이션을 실행할 때 사용되는 라이브러리일 경우 설정한다.
  • test : 테스트를 위해서만 사용하는 라이브러리이다.
  • system : 이 scope는 provided와 비슷하다. 단지 우리가 직접 jar 파일을 제공해야 한다. 따라서 이 scope의 jar 파일은 repository에서 관리되지 않을 수도 있다.

compileprovidedruntimetest
compilecompile(*)-runtime-
providedprovidedprovidedprovided-
runtimeruntime-runtime_
testtest-test-

좀더 상세한 내용은 http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html 에서 볼수 있다.

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-10) was last changed on 17-Oct-2007 10:30 by DongGukLee  
G’day (anonymous guest) My Prefs

Referenced by
HowToInstall

JSPWiki v2.8.4