반응형

Maven - Project Templates



(원문 위치 : http://www.tutorialspoint.com/maven/maven_project_templates.htm )

Maven은 사용자에게 원형(archetype)의 개념을 사용하여 다른 많은 좋류(614 종류)의 프로젝트 템플릿을 제공한다. Maven은 사용자가 빠르게 아래 명령을 사용하여 새로운 java 프로젝트를 시작할 수 있도록 한다.
mvn archetype:generate

What is Archetype?

Aechetype은 작업이 템플릿에 따라 플젝트 구조(structure)를 생성하기 위한 Maven plugin이다. 여기서는 간단한 java application을 생성하기 위해 quickstart archetype을 사용할 것이다.

Using Project Template

콘솔을 열고 C\>MVN 디렉토리로 가서 아래 mvn명령을 실행한다.
C:\MVN>mvn archetype:generate 
Maven은 처리를 시작하고 요구된 archetype을 선택하기위해 질문할 것이다.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.4:generate (default-cli) > generate-sources@ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.4:generate (default-cli) < generate-sources@ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.4:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[WARNING] No archetype found in remote catalog. Defaulting to internal catalog
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.
archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.)
2: internal -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.)
3: internal -> org.apache.maven.archetypes:maven-archetype-plugin (An archetypewhich contains a sample Maven plugin.)
4: internal -> org.apache.maven.archetypes:maven-archetype-plugin-site (An archetype which contains a sample Maven plugin site.
      This archetype can be layered upon an existing Maven plugin project.)
5: internal -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.)
6: internal -> org.apache.maven.archetypes:maven-archetype-profiles ()
7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
8: internal -> org.apache.maven.archetypes:maven-archetype-site (An archetype which contains a sample Maven site which demonstrates
      some of the supported document types like APT, XDoc, and FML and demonstrates how
      to i18n your site. This archetype can be layered upon an existing Maven project.)
9: internal -> org.apache.maven.archetypes:maven-archetype-site-simple (An archetype which contains a sample Maven site.)
10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype
 which contains a sample Maven Webapp project.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7:
기본 옵션(7:maven-archetype-quickstart)로 선택하고 enter를 누른다. Maven은 프로젝트 상세를 물을 것이다. 질문되어진 프로젝트 상세를 입력한다. 만약 기본값이 제공되어 진다면 enter를 누른다. 다른값을 입력함으로써 그 값을 덮어쓸 수 있다.
Define value for property 'groupId': : com.companyname.insurance
Define value for property 'artifactId': : health
Define value for property 'version': 1.0-SNAPSHOT:
Define value for property 'package': com.companyname.insurance:
Maven은 프로젝트 상세 승인을 한 질문을 할 것이다. Enter 또는 Y를 누른다.
Confirm properties configuration:
groupId: com.companyname.insurance
artifactId: health
version: 1.0-SNAPSHOT
package: com.companyname.insurance
Y:
이제 Maven은 프로젝트 구조(structure)를 생성하는 것을 시작하고 아래와 같이 출력할 것이다.
[INFO] -------------------------------------------------------------------------
---
[INFO] Using following parameters for creating project from Old (1.x) Archetype:
 maven-archetype-quickstart:1.1
[INFO] -------------------------------------------------------------------------
---
[INFO] Parameter: groupId, Value: com.companyname.insurance
[INFO] Parameter: packageName, Value: com.companyname.insurance
[INFO] Parameter: package, Value: com.companyname.insurance
[INFO] Parameter: artifactId, Value: health
[INFO] Parameter: basedir, Value: C:\MVN
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: C:\MVN\health
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:29 min
[INFO] Finished at: 2015-09-27T12:18:02+05:30
[INFO] Final Memory: 16M/247M
[INFO] ------------------------------------------------------------------------

Created Project

이제 C:\>MVN 디렉토리로 가자. 프로젝트 생성시 artifactId로 주어진 'health'로 이름지어진 java application 르족젝트를 볼 수 있을 것이다. Maven은 아래 보여지는 것과 같이 프로젝트에 대해 표준 디젝토리 layout을 생성할 것이다.

project structure

Created POM.xml

Maven은 아래 나열된 것처럼 프로젝트를 위한 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/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.companyname.insurance</groupId>
   <artifactId>health</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>health</name>
   <url>http://maven.apache.org</url>
   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   <dependencies>
      <dependency>
      <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
      </dependency>
   </dependencies>
</project>

Created App.java

Maven은 간단한 java 소스파일 - 아래 나열된 것같이 프로젝트를 위한 App.java -을 생성한다.

위치 : C:\> MVN > health > src > main > java > com > company name > insurance > App.java
package com.companyname.insurance;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

Created AppTest.java

Maven은 간단한 java 테스트 파일 - 아래 나열된 것과 같이 프로젝트를 위한 AppTest.java - 을 생성한다. 

위치 : C:\ > MVN > health > src > test > java > com > company name > insurance > AppTest.java
package com.companyname.insurance;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/**
 * Unit test for simple App.
 */
public class AppTest 
    extends TestCase
{
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public AppTest( String testName )
    {
        super( testName );
    }

    /**
     * @return the suite of tests being tested
     */
    public static Test suite()
    {
        return new TestSuite( AppTest.class );
    }

    /**
     * Rigourous Test :-)
     */
    public void testApp()
    {
        assertTrue( true );
    }
}
이게 다다. 이제 Maven의 강력함을 알 수 있을 것이다. Maven의 단일 명령을 사용하여 어떠한 종류의 프로젝트도 생성할 수 있고 개발을 촉진할 수 있다.


반응형

+ Recent posts