Maven에서 커스텀 원형 만들기

6278 단어 javamavenprogramming
개발자로서 우리는 DRY(Don't Re-invent Yourself)와 같은 개념을 받아들입니다. 비슷한 것을 반복적으로 생성할 때 우리는 항상 그것에 대한 템플릿을 준비하므로 처음부터 프로젝트를 시작하는 대신 미리 구성된 디렉토리 구조를 가질 수 있습니다. 그리고 해당 디렉토리에 템플릿 소스 파일을 배치할 수 있습니다. 예: struts.xml, spring config 파일, web.xml, tiles.xml 등.

원형 만들기



다음 명령을 실행합니다.

mvn archetype:generate \
-DgroupId=[your project's group id] \
-DartifactId=[your project's artifact id] \
-DarchetypeArtifactId=maven-archetype-archetype


이렇게 하면 아키타입 생성을 위한 다음과 같은 기본 디렉토리 구조가 생성됩니다.

archetype
|-- pom.xml
`-- src
    `-- main
        `-- resources
            |-- META-INF
            |   `-- maven
            |       `--archetype.xml
            `-- archetype-resources
                |-- pom.xml
                `-- src
                    |-- main
                    |   `-- java
                    |       `-- App.java
                    `-- test
                        `-- java
                            `-- AppTest.java


템플릿을 생성하기 위한 maven의 템플릿으로 maven-archetype-archetype을 생각하십시오.

생성된 원형 설명자는 오래되었으며 새 기능을 사용하려면 변경해야 합니다. 이를 위해 파일 이름archetype.xmlarchetype-metadata.xml로 바꿉니다.

다음 내용을 파일에 덮어씁니다.

<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
   name="simple-web"> <!-- name must be same as the project archetypeId -->
         <fileSets>
         <fileSet filtered="true" encoding="UTF-8">
             <directory>src/main/web</directory>
         </fileSet>
         <fileSet filtered="true" encoding="UTF-8">
             <directory>src/main/resources</directory>
         </fileSet>
         <fileSet filtered="true" encoding="UTF-8">
             <directory>src/test/resources</directory>
         </fileSet>
         <fileSet filtered="true" packaged="false">
             <directory>src/main/java</directory>
             <includes>
                 <include>**/*.java</include>
             </includes>
         </fileSet>
         <fileSet filtered="true">
             <directory>src/test/java</directory>
             <includes>
                 <include>**/*.java</include>
             </includes>
         </fileSet>
     </fileSets>
 </archetype-descriptor>


위의 maven 아키타입 디스크립터 파일은 maven에게 웹src/main/java 및 해당 테스트 소스 디렉토리에 있는 모든 소스 파일을 복사(또는 존재하지 않는 경우 생성)하도록 지시합니다. archetype-resources 디렉토리는 모든 템플릿 코드가 있어야 하는 곳입니다. 마지막으로 모든 템플릿 파일을 복사하면 Maven에서 다음 명령을 실행하여 새로 생성된 아티팩트를 설치합니다.

mvn install


시간이 지남에 따라 템플릿을 지속적으로 개선할 수 있습니다. 아티팩트가 프로세스 중에 여러 번 설치되므로 잘못된 버전의 아키타입이 설치될 수 있습니다. 다음 명령을 실행하여 아키타입 캐시를 정리할 수 있음을 반박하려면:

mvn clean install -U


-U는 종속성의 강제 업데이트를 의미합니다.

따라서 원형을 사용하여 새 프로젝트를 만들 때마다 다음 명령을 실행합니다.

mvn archetype:generate -DarchetypeGroupId=com.my-template
 -DarchetypeArtifactId=template-name -DarchetypeVersion=1.0
 -DgroupId=proj.groupid -DartifactId=projectid


그래서 당신은 그것을 가지고 있습니다! 이 한 줄 명령으로 모든 템플릿 소스 파일을 로드하고 애플리케이션의 전체 디렉터리 구조를 만들 수 있습니다.

좋은 웹페이지 즐겨찾기