2013-04-24 36 views
6

Tôi đang phải đối mặt với một vấn đề với phát hành liên tục của: chuẩn bị giai đoạn mà thất bại trong SCM-check-sửa đổi bước với lỗi:Maven phát hành: chuẩn bị: Không thể chuẩn bị phát hành bởi vì bạn phải thay đổi địa phương

[LỖI] org.apache.maven.shared.release.ReleaseFailureException: không thể chuẩn bị phát hành bởi vì bạn phải thay đổi địa phương: [pom.xml: sửa đổi]

gì tôi đã làm:

  1. Tôi cam kết tất cả các thay đổi của mình (* .java và pom.xml) vào SVN
  2. Tôi đã xây dựng dự án tại Continuum
  3. Tôi đã khởi chạy việc chuẩn bị bản phát hành.

Tôi biết rằng scm-check-modifications gọi ScmCheckModificationsPhòng học xác minh rằng không có thay đổi cục bộ so với những gì có trên SCM.

Tôi hiểu nếu tôi chỉ làm việc với Maven, nếu có một số thay đổi cục bộ, hoặc bất kỳ sự khác biệt nào giữa mã cục bộ và SVN chẳng hạn, phát hành: chuẩn bị sẽ không hoạt động, vì nó kiểm tra sửa đổi trước; nhưng làm việc với Continuum, tôi không biết tại sao nó phải là một differencse giữa mã địa phương và kho SVN? Vì vậy, tôi không biết tại sao việc phát hành: chuẩn bị mục tiêu trong Continuum đang đối mặt với vấn đề đó.

Ví dụ về pom của tôi:

<build> 
     <plugins> 
    ... 
     <plugin> 
      <artifactId>maven-release-plugin</artifactId> 
      <configuration> 
       <useReleaseProfile>false</useReleaseProfile> 
      </configuration> 
     </plugin> 

    ...  
     </plugins> 

    </build> 


<scm> 
    <connection>scm:cvs:ext:url:/var/cvs:application_name</connection>   <developerConnection>scm:cvs:ext:url:/var/cvs:application_name</developerConnection> 
</scm> 

..... 
</project> 

Trong pom.xml mẹ:

... 
    <pluginManagement> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.2.2</version> 
      <configuration> 
      <useReleaseProfile>false</useReleaseProfile> 
      <goals>deploy</goals> 
      <arguments>-Prelease</arguments> 
      </configuration> 
     </plugin> 
..... 

Để biết thông tin, xây dựng và phát hành của dự án luôn làm việc tốt, cho đến bây giờ.

Có giải pháp Bỏ qua đã giải quyết được vấn đề của tôi nhưng tôi vẫn đang tìm hiểu nguồn gốc của vấn đề này.

Giải pháp bypass:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.2.2</version> 
    <configuration> 
    ... 
    <checkModificationExcludes> 
     <checkModificationExclude>pom.xml</checkModificationExclude> 
    </checkModificationExcludes> 
    </configuration> 
</plugin> 
+0

Bạn đã kiểm tra dòng lệnh bên ngoài liên tục chưa? – khmarbaise

+0

so sánh các sửa đổi được thực hiện trong tệp pom.xml có thể cung cấp cho bạn ý tưởng về những gì đã xảy ra. Bạn có thể thêm thông tin này vào câu hỏi của mình không? – cahen

+0

@ khmarbaise: Trên thực tế không, tôi cần phải cài đặt Rùa cho điều này, bởi vì Maven sẽ khiếu nại cho lệnh "svn" không được công nhận. Bạn có bất kỳ ý tưởng tại sao Continuum sẽ khiếu nại về một sự khác biệt vấn đề giữa SCM và mã địa phương không? –

Trả lời

9

Tôi có thể khẳng định, rằng việc thêm các plugin hoặc cấu hình nó để loại trừ việc kiểm tra pom.xml công việc đã làm:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
     <checkModificationExcludes> 
      <checkModificationExclude>pom.xml</checkModificationExclude> 
     </checkModificationExcludes> 
    </configuration> 
    </plugin> 
7

Loại bỏ thư mục target của dự án của tôi từ nguồn kiểm soát cố định vấn đề này cho tôi.

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