2010-08-25 29 views
5

Làm cách nào để khóa phiên bản của plugin Maven mà tôi muốn sử dụng?Cách khóa phiên bản plugin maven

Tôi có plugin PMD cấu hình như vậy:

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-pmd-plugin</artifactId> 
       <version>2.5</version> 
       <configuration> 
        <outputDirectory>target/pmd</outputDirectory> 
        <targetDirectory>target/</targetDirectory> 
        <aggregate>true</aggregate> 
        <targetJdk>1.6</targetJdk> 
        <rulesets> 
         <ruleset>rulesets/basic.xml</ruleset> 
         <ruleset>rulesets/codesize.xml</ruleset> 
         <ruleset>rulesets/coupling.xml</ruleset> 
         <ruleset>rulesets/design.xml</ruleset> 
         <ruleset>rulesets/imports.xml</ruleset> 
         <ruleset>rulesets/logging-java.xml</ruleset> 
         <ruleset>rulesets/optimizations.xml</ruleset> 
         <ruleset>rulesets/strings.xml</ruleset> 
         <ruleset>rulesets/unusedcode.xml</ruleset> 
        </rulesets> 
       </configuration> 
      </plugin> 

Đêm qua, xây dựng hàng đêm của tôi đã thất bại và tôi không còn có thể chạy bất kỳ mục tiêu PMD vì nó đang cố gắng để tìm phiên bản 2,6-SNAPSHOT của plugin đó. Tại sao nó lại cố gắng tìm 2.6-SNAPSHOT nếu tôi có một thẻ phiên bản 2.5? Ngoài ra, 2.6-SNAPSHOT không nằm ở trung tâm - tại sao khách hàng maven của tôi nghĩ rằng nó tồn tại?

Maven phiên bản: 2.0.9
phiên bản Java: 1.6.0_17
tên OS: "linux" phiên bản: "2.6.24-24-generic" vòm: "i386" Gia đình: "unix"

Chỉnh sửa:

Tôi đã nâng cấp lên maven 2.2.1 và quan sát cùng một vấn đề như trước. Tôi đã có thể nhận được dự án để xây dựng bằng cách loại bỏ 2.6-SNAPSHOT khỏi siêu dữ liệu trong kho lưu trữ của tôi (.m2/repository/org/apache/maven/plugins/maven-pmd-plugin/maven-metadata-central.xml). Tôi cũng đặt thẻ latestVersion thành 2.5. Đây rõ ràng không phải là giải pháp, bởi vì tôi phải triển khai plugin của riêng mình hoặc thay đổi phiên bản được lưu trong bộ nhớ cache trên tất cả các máy khách.

+1

Dường như lỗi của Maven. Thẻ "phiên bản" tồn tại đặc biệt để sửa phiên bản plugin và để đảm bảo rằng bản dựng của bạn có thể tái tạo, ngay cả khi có bản phát hành plugin mới. –

+0

Bạn đã thử điều này với một trong các phiên bản Maven mới hơn, chúng đang ở trên 2.2.1 vào lúc này. Nếu nó được cố định ở đó, thì đó là một lỗi trong con quạ. – Goibniu

+0

Nâng cấp dường như không giúp đỡ (xem chỉnh sửa ở trên) – Greg

Trả lời

2

thủ tục chuẩn trong những trường hợp như: xóa thư mục Plugin tương ứng trong repo địa phương của bạn:

.m2/repository/org/apache/maven/plugins/maven-pmd-plugin/ 

này giúp trong hầu hết các trường hợp.

Nếu không, có thể bạn đang nhận được dữ liệu xấu từ một kho lưu trữ. Nếu bạn đang sử dụng một mối quan hệ, hãy xây dựng lại chỉ mục.

+2

Tôi nhận được nó hoạt động. Vấn đề là siêu dữ liệu plugin đến từ kho lưu trữ JBOSS. Tôi đã ủy quyền http://repository.jboss.org/nexus/content/groups/public/ đã gây ra sự cố. Tôi đã thay đổi proxy của mình thành https://repository.jboss.org/nexus/content/repositories/releases/, đã xóa kho lưu trữ cục bộ của tôi và có thể tạo. – Greg

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