반응형

Maven - Creating Project


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

Maven은 프로젝트를 생성하기 위해 원형(archetype) plugin을 사용한다. 간단한 java 프로그램을 생성하기 위해 maven-archetype-quickstart plugin을 사용할 것이다. 아래 예제에서 C:\MVN폴더에 자바 프로그램 프로젝트를 기본으로한  maven을 생성할 것이다.

콘솔을 열고 C:\MVN으로 가서 아래 mvn명령을 싱행한다.
C:\MVN>mvn archetype:generate
-DgroupId=com.companyname.bank 
-DartifactId=consumerBanking 
-DarchetypeArtifactId=maven-archetype-quickstart 
-DinteractiveMode=false
Maven은 처리를 시작할 것이다. 그리고 완전한 java application project structure를 생성할 것이다.
[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 Batch mode
[INFO] -------------------------------------------------------------------------
---
[INFO] Using following parameters for creating project from Old (1.x) Archetype:
 maven-archetype-quickstart:1.0
[INFO] -------------------------------------------------------------------------
---
[INFO] Parameter: groupId, Value: com.companyname.bank
[INFO] Parameter: packageName, Value: com.companyname.bank
[INFO] Parameter: package, Value: com.companyname.bank
[INFO] Parameter: artifactId, Value: consumerBanking
[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\consumerBanking
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:19 min
[INFO] Finished at: 2015-09-26T12:18:26+05:30
[INFO] Final Memory: 15M/247M
[INFO] ------------------------------------------------------------------------

이제 C:/MVN 디렉토리고 가자. (artifactID에 명시한것 같이) cunsumerBanking으로 이름지어진 java application project가 생성된 것을 볼 수 있다. Maven은 아래와 같은 표준 디렉토리 layout을 사용한다.

Java application project structure

위 예제를 사용하여 아래 주요 개념을 이해할 수 있다.

Folder StructureDescription
consumerBanking

contains src folder and pom.xml (src폴더와 pom.xml을 포함한다.)

src/main/java

contains java code files under the package structure (com/companyName/bank). (package structure - com/companyName/bank-아래에 java code 파일을 포함한다.)

src/main/test

contains test java code files under the package structure (com/companyName/bank). (package structure아애레 test java code파일을 포함한다.)

src/main/resources

it contains images/properties files (In above example, we need to create this structure manually). (이미지/속성파일을 포함한다 - 위의 예에서 이 구조는 수동으로 생성하여야 한다.)

만약 maven이 또한 간단한 java 소스 파일과 java test 파일을 생성한 것이 보이면, C:\MVN\consumerBankign\src\main\java\com\companyname\bank 폴더를 열면 App.java를 보게 될 것이다.

package com.companyname.bank;

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

C:\MVN\consumerBanking\src\test\java\com\companyname\bank폴더를 열면 AppTest.java를 보게될 것이다.

package com.companyname.bank;

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은 복잡한 모든 build를 다룬다.


반응형

+ Recent posts