maven - 템플릿을 사용하여 web project 만들기

1. 사용가능한 템플릿은?
maven에서 기본적으로 제공하는 archetype은 다음의 사이트에서 찾아볼 수 있다.

http://docs.codehaus.org/display/MAVENUSER/Archetypes+List 

목록 중, 다음의 항목이 눈에 들어온다.
"simple java web application"
maven-archetype-webapp org.apache.maven.archetypes     A simple Java web application
 
archetype을 maven-archetype-webapp로 지정하여 만들어 보자.
일단, quick-start를 했을 때처럼 다음과 같이 입력해 보았다.

mvn archetype:generate -DgroupId=com.luran -DartifactId=myweb -DarchetypeArtifcatId=maven-archetype-webapp -DinterfactiveMode=false



프로젝트는 만들어졌는데, 중간에 출력된 메시지를 보니, 그냥 quick-start로 만들어졌다고 뜬다. (왜?)

그래서, interactive 모드로 다시 한 번 해본다.

mvn archetype:generate -DarchetypeCatalog=internal


목록에서 "19: internal -> org.apache.maven.archetypes:maven-archetype-webapp"를 발견했다. 19번 선택.
groupId : com.luran 입력
artifactId : myweb
1.0-SNAPTSHOT : 엔터
package : 엔터


이제 프로젝트가 정상적으로 생성된 것을 확인할 수 있다.

2. 생성한 프로젝트 확인
1) 생성한 직후


2) mvn test를 수행한 후


   * target/classes가 추가되었다.

3) mvn package를 수행한 후


    * target에 maven-archiever, myweb, war 등이 추가되었다.

 


3. 디렉토리 구조를 변경하자
지금 생성된 구조는 너무 복잡해 보인다.
기존에 작업하던 것과 같이, src/test를 빼내고, web 리소스는 WebContent 디렉토리 밑에 넣어보자.

생성된 pom.xml에는 다음과 같이 디렉토리에 대한 설정이 보이지 않는다.

  4.0.0
  com.luran
  myweb
  war
  1.0-SNAPSHOT
  myweb Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      4.8.2
      test
    
  
  
    myweb
  


그런데, 어떻게 바꾸면 될까?

mvn help:effective-pom


을 실행하면,  최상의 POM 설정을 확인할 수 있다.
본인이 실행한 결과는 다음과 같았다.

  4.0.0
  com.luran
  myweb
  1.0-SNAPSHOT
  war
  myweb Maven Webapp
  http://maven.apache.org
  
    C:\dev\mvntest\myweb\src\main\java
    src/main/scripts
    C:\dev\mvntest\myweb\src\test\java
    C:\dev\mvntest\myweb\target\classes
    C:\dev\mvntest\myweb\target\test-classes
    
      
        resource-0
        C:\dev\mvntest\myweb\src\main\resources
      
    
    
      
        resource-1
        C:\dev\mvntest\myweb\src\test\resources
      
    
    C:\dev\mvntest\myweb\target
    myweb
    
      
        
          maven-antrun-plugin
          1.3
        
        
          maven-assembly-plugin
          2.2-beta-2
        
        
          maven-clean-plugin
          2.2
        
        
          maven-compiler-plugin
          2.0.2
        
        
          maven-dependency-plugin
          2.0
        
        
          maven-deploy-plugin
          2.4
        
        
          maven-ear-plugin
          2.3.1
        
        
          maven-ejb-plugin
          2.1
        
        
          maven-install-plugin
          2.2
        
        
          maven-jar-plugin
          2.2
        
        
          maven-javadoc-plugin
          2.5
        
        
          maven-plugin-plugin
          2.4.3
        
        
          maven-rar-plugin
          2.2
        
        
          maven-release-plugin
          2.0-beta-8
        
        
          maven-resources-plugin
          2.3
        
        
          maven-site-plugin
          2.0-beta-7
        
        
          maven-source-plugin
          2.0.4
        
        
          maven-surefire-plugin
          2.4.3
        
        
          maven-war-plugin
          2.1-alpha-2
        
      
    
    
      
        maven-help-plugin
        2.1.1
      
    
  
  
    
      
        false
      
      central
      Maven Repository Switchboard
      http://repo1.maven.org/maven2
    
  
  
    
      
        never
      
      
        false
      
      central
      Maven Plugin Repository
      http://repo1.maven.org/maven2
    
  
  
    
      junit
      junit
      4.8.2
      test
    
  
  
    C:\dev\mvntest\myweb\target/site
  


위의 데이터를 참조하여, 원래 pom.xml에 추가해 보자.
바꿀 항목은,

  • sourceDirectory
  • testSourceDirectory 
  • outputDirectory
  • testOutputDirectory
  • resources
  • testResources
 등 절대 경로로 되어 있는 부분이다.


  4.0.0
  com.luran
  myweb
  war
  1.0-SNAPSHOT
  myweb Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      4.8.2
      test
    
  
  
    myweb
    src/java
    src/test
    target/classes
    target/test-classes
    
       
	      src/resources
       
    
    
	   
    	   test/resources	    
	   
    
    
	
   	  maven-war-plugin
		
			WebContent
		
	
    
  


pom.xml에 표기한 바와 같이 디렉토리의 구조를 변경했다.
다시

mvn package

를 실행하면, Build Successful이 나타나고, 다음과 같은 디렉토리 구조가 생긴다.

 

댓글

Designed by JB FACTORY