2012-03-06 54 views
45

trong một dự án của tôi, tôi cần xây dựng một dự án không có phiên bản. tôi có một dự án gọi commonjerseylib khi tôi xây dựng nó bằng cách sử dụng maven tôi đang nhận được commonjerseylib-1.0.war nhưng tôi cần chiến tranh tên file commonjerseylib.warlàm thế nào để xây dựng dự án với maven mà không cần phiên bản

tôi xóa thẻ phiên bản từ pom nhưng vẫn bằng maven mặc định được tạo ra với 1.0 phiên bản.

Cảm ơn bạn trước

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

Trả lời

102

Bạn sẽ luôn luôn cần một số phiên bản cho một dự án, tuy nhiên nó có thể thay đổi tên của gói được tạo ra (JAR, WAR, EAR, vv) thông qua <finalName> yếu tố trong POM.

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

hoặc trong các phiên bản cũ của maven:

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

Theo mặc định, finalName là ${project.artifactId}-${project.version}, nhưng điều này có thể được thay đổi để cái gì khác. Điều này sẽ chỉ ảnh hưởng đến tên của gói được tạo trong thư mục target; tên tệp trong kho lưu trữ cục bộ và được tải lên kho lưu trữ từ xa sẽ luôn có số phiên bản.

Xem POM reference documentation để biết thêm thông tin.

+0

Đó là hoàn hảo, rõ ràng và sạch sẽ! – Thomas

+6

Ít nhất là Maven 3.0.3, $ {artifactId} không còn được dùng nữa vì lợi ích của $ {project.artifactId}. – Glenn

+0

@prunge: Cảm ơn bạn đã trả lời. Bạn có biết cách nào để làm điều đó vì nó có hiệu lực với tên tệp trong kho lưu trữ cục bộ và kho lưu trữ từ xa không. – namalfernandolk

6

trong maven Plugin chiến tranh trong xây dựng, thay đổi

<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> 
Các vấn đề liên quan