2011-10-26 29 views
44

Với ý định để có được M2E 1.0 hoạt động chính xác tôi đã có để xác định việc lập bản đồ vòng đời:thoát khỏi POM không tìm thấy cảnh báo cho org.eclipse.m2e: vòng đời-mapping

<pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.bsc.maven</groupId> 
            <artifactId>maven-processor-plugin</artifactId> 
            <versionRange>[2.0.2,)</versionRange> 
            <goals> 
             <goal>process</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <execute /> 
           </action> 
          </pluginExecution> 
         </pluginExecutions>       
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 

Nhưng sau đó tôi nhận được cảnh báo này :

[WARNING] The POM for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 is missing, no dependency information available 
[WARNING] Failed to retrieve plugin descriptor for org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin org.eclipse.m2e:lifecycle-mapping:1.0.0 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 

nếu tôi chạy một số nhiệm vụ cụ thể maven ví dụ mvn clean install findbugs:findbugs (Nếu tôi chỉ chạy mvn clean install sau đó là không có thông báo như vậy)

tôi biết rằng vấn đề là POM này không tồn tại, bởi vì nó chỉ được định nghĩa để giữ thông tin bản đồ. (m2e lifecycle-mapping not found)

Dù sao, tôi muốn giữ cho bản vẽ của mình sạch sẽ, không có bất kỳ cảnh báo nào, vậy làm thế nào tôi có thể loại bỏ điều cụ thể này? (Máy chủ CI của tôi kiểm tra rằng không có cảnh báo nào.)

Tôi sử dụng Maven 3.0.2 và đã thử Maven 3.0.3 quá, nhưng kết quả tương tự.

+0

Bạn đang chạy phiên bản Maven nào? – khmarbaise

+0

@khmarbaise: Nó là maven 3.0.2 – Ralph

+0

Bạn có thể đăng POM hoàn chỉnh của dự án này ... vì tôi cho rằng bạn có một phụ thuộc ở đâu đó trong pom của bạn ... BTW: Bạn đã thử chạy nó với Maven 3.0 chưa. 3? – khmarbaise

Trả lời

47

đội tôi làm việc xung quanh vấn đề này bằng cách gói cấu hình có liên quan trong một cấu hình:

<profile> 
    <id>only-eclipse</id> 
    <activation> 
    <property> 
     <name>m2e.version</name> 
    </property> 
    </activation> 
    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.eclipse.m2e</groupId> 
      <artifactId>lifecycle-mapping</artifactId> 
      <version>1.0.0</version> 
      <configuration> 
      ... 
      </configuration> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    </build> 
</profile> 
+0

có cần phải kích hoạt cấu hình đó trong nhật thực không? – Ralph

+0

@Ralph Không, kích hoạt thuộc tính hoạt động vì chỉ Eclipse xác định thuộc tính m2e.version - nó không được kích hoạt bởi vanilla Maven, hoặc trong các IDE khác. Nó giả sử bạn đang sử dụng tích hợp Eclipse M2E (File> Import> Project Maven hiện tại) thay vì nhật thực cũ: eclipse goal, mặc dù vậy. – ctrueden

+0

@ctrueden cảm ơn vì điều này - tôi đã ref. nó từ https://bugs.eclipse.org/bugs/show_bug.cgi?id=367870 – vorburger

8

Giải pháp này hiện không còn được dùng nữa, tôi khuyên bạn nên sử dụng giải pháp "hồ sơ" bằng @ctrueden, đó là câu trả lời được chấp nhận!

Trong khi không phải là giải pháp sạch nhất, khi bạn sử dụng một trình quản lý kho trong công ty của bạn hoặc là một mình, trong thời gian trung bình bạn có thể làm điều này: - Thanh toán https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin. - Chạy mvn install khi bạn đang sở hữu - Chạy mvn deploy -DaltDeploymentRepository=REPO_ID::default::YOUR_THIRDPARTY_REPO_URL khi bạn có người quản lý kho lưu trữ như Nexus hoặc Artifactory. - Xem số https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin/blob/master/README.creole.

Trân Mirko

+0

của nó một hack, nhưng nó là giải pháp tốt nhất mà tôi có thể nghĩ đến tại thời điểm này – Ralph

+0

@ Ralph tôi đã chỉnh sửa câu trả lời và thử nghiệm nó với một số dự án. –

+0

Theo cảnh báo không dùng nữa của bạn, tôi thay đổi anh ấy chấp nhận cờ, xin lỗi. – Ralph

1

Bây giờ có bây giờ giải pháp tốt hơn (đối với các thông báo lỗi trong Eclipse chỉ).

Nhấn CTR + 1 về lỗi Plugin thực hiện không nằm trong cấu hình vòng đời: org.codehaus.mojo: buildnumber-maven-plugin: 1.1: tạo-timestamp (thực hiện: default-tạo-timestamp, giai đoạn: xác nhận) và sau đó chọn tùy chọn này:

enter image description here

này làm việc với org.eclipse.m2e.editor.xml_1.2.0.20120903-1050.jar plugin (có lẽ trước đó cũng)

+0

Khi bạn lưu trữ điều này trong cài đặt, những người khác sẽ thấy điều này một lần nữa, tuy nhiên. Vì vậy, đối với các công ty triển khai đến một kho lưu trữ của bên thứ ba có thể khả thi hơn :-). –

+0

Thao tác này sẽ không hoạt động khi chúng tôi thấy lỗi trên hộp CI – Blundell

+3

Sửa lỗi nhanh mà bạn đã đặt tên bổ sung cấu hình lập bản đồ vòng đời vào pom. Điều này sẽ * gây ra * vấn đề được đặt tên bởi câu hỏi, không giải quyết nó. – Kissaki

11

này một known bug với Độ phân giải WONTFIX. Giải pháp được đề xuất là đơn giản nhất theo ý kiến ​​của tôi:

mvn archetype:generate -DgroupId=org.eclipse.m2e -DartifactId=lifecycle-mapping \ 
-Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-mojo 

install dự án này.

+1

Điều này hiệu quả. Tôi đã thêm thẻ distributionManagement-> repository vào pom cho repo nexus cục bộ của chúng tôi và đã triển khai mvn để sửa nó cho nhóm của tôi. –

1

m2eclipse 1.7.0 giới thiệu một sự thay thế, cụ thể là một hướng dẫn xử lý XML.

Trong ví dụ ban đầu, bạn sẽ chỉ đơn giản là “chú thích” mỗi <execution> của process mục tiêu ‘s maven-processor-plugin với

<?m2e execute?> 

Xem release notes để biết thêm chi tiết về cú pháp và các tùy chọn thêm.

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