버전없이 Maven 프로젝트를 빌드하는 방법은 무엇입니까?


81

버전없이 빌드하려는 메이븐 프로젝트가 있습니다.

이제 maven을 사용하여 프로젝트를 빌드하면 이것을 생성 commonjerseylib-1.0.war하지만 생성 해야합니다 commonjerseylib.war.

그 외에도 <version>태그를 제거 pom.xml했지만 Maven은 war기본적으로 버전 1.0으로 생성하고 있습니다.

pom.xml:

      <modelVersion>4.0.0</modelVersion>
      <groupId>commonjerseylib</groupId>
      <artifactId>commonjerseylib</artifactId>
      <packaging>ear</packaging>
      <name>commonjerseylib</name>
      <!--<version>1.0</version>-->

버전없이 빌드하는 방법은 무엇입니까?

답변:


169

프로젝트의 버전 번호는 항상 필요하지만 <finalName>POM 의 요소를 통해 생성 된 패키지 (JAR, WAR, EAR 등)의 이름을 변경할 수 있습니다 .

<project>
    ...
    <build>
        ...
        <finalName>${project.artifactId}</finalName>
        ...
    </build>
    ...
</project>

또는 이전 버전의 maven에서 :

        ...
        <finalName>${artifactId}</finalName>
        ...

기본적으로 finalName은 ${project.artifactId}-${project.version}이지만 다른 것으로 변경할 수 있습니다. 이는 target디렉토리에 생성 된 패키지의 이름에만 영향을 미칩니다 . 로컬 저장소에 있고 원격 저장소에 업로드 된 파일 이름에는 항상 버전 번호가 있습니다.

자세한 정보는 POM 참조 문서 를 참조하십시오.


완벽하고 깨끗하고 깨끗합니다!
토마스

7
Maven 3.0.3 이상부터 $ {artifactId} 대신 $ {project.artifactId}가 사용됩니다.
Glenn

2
@prunge : 답변 감사합니다. 로컬 저장소 및 원격 저장소의 파일 이름에 영향을 미치므로이를 수행하는 방법을 알고 있습니까?
namalfernandolk 2015

이 같은 명령 줄에서 재정의 할 일을하지 않습니다 -Dproject.build.finalName=whatever- 명령 행에서 항아리의 이름을 지정할 수 있도록하려면, 참조 stackoverflow.com/a/13877971/587365
앤드류 스펜서

12

빌드, 변경의 메이븐 전쟁 플러그인에서

<warName> ${artifactId} </warName>

        <build>
           ..........
             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <!-- web.xml is not mandatory since JavaEE 5 -->
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <warName>${artifactId}</warName>
                </configuration>
            </plugin>
         .............
       <build>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.