2012-01-30 31 views
10

Tôi có một tệp duy trì số bản dựng để xây dựng bản phát hành. Mỗi lần xây dựng bản phát hành được thực hiện, con số này được tăng lên và tệp được lưu vào kho svn.Maven: Sử dụng Plugin Dựa trên Hồ sơ

Bây giờ, tôi có một plugin để thực hiện công việc này và tôi đã tạo hồ sơ xây dựng. Nhưng tôi cần plugin này để được kích hoạt chỉ khi xây dựng hồ sơ được kích hoạt và không khác. Tôi đoán việc thêm pluginManagement vào hồ sơ có thể là cách như sau. Bất kỳ đề xuất?

<profiles> 
    <id>release</id>  
    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        .. 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
</profiles> 

Trả lời

5

Sử dụng pluginQuản lý sẽ không làm plugin xây dựng chạy. Nó được sử dụng để chỉ định phiên bản plugin và thông tin cấu hình cho các POM con. Ngoài ra, bạn còn thiếu phần tử con 'profile' của 'profiles'. Cuối cùng, trừ khi bạn dự định kích hoạt hồ sơ qua -P, bạn sẽ cần một số tiêu chí kích hoạt.

27

Tôi khuyên bạn nên xem tài liệu về hồ sơ xây dựng trước tiên. Bạn có thể thấy rằng here. Điều đầu tiên bạn muốn xem qua là phần này:

Làm cách nào để kích hoạt hồ sơ? Điều này khác nhau tùy theo loại hồ sơ đang được sử dụng như thế nào?

Về cơ bản, một khi bạn hiểu rằng, lưu ý rằng những gì bạn đặt trong phần hồ sơ của bạn là khá gần với những gì bạn có ngoài hồ sơ của bạn. Điều đó đang được nói, nếu bạn cần một phần xây dựng cấu hình cụ thể, nó sẽ mô phỏng những gì bạn sẽ có bên ngoài tiểu sử - nếu bạn nhìn vào pom.xsd nó là chính xác cùng tôi tin.

Vì vậy, ví dụ:

<profiles> 
    <profile> 
     <id>full-build</id> 
     <activation> 
      <property> 
       <name>build</name> 
       <value>full</value> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.codehaus.mojo.webstart</groupId> 
        <artifactId>webstart-maven-plugin</artifactId> 
        <version>1.0-beta-1</version> 
        <executions> 
         <execution> 
          <phase>package</phase> 
          <goals> 
           <goal>jnlp</goal> 
          </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <resourcesDirectory>src/main/web</resourcesDirectory> 
         .... 

này sẽ được kích hoạt bằng cách chạy: mvn package -Dbuild=full

Tôi hy vọng điều này sẽ giúp.

Các vấn đề liên quan