2012-01-19 37 views
7

Tôi muốn tải lên plugin maven tùy chỉnh của mình lên kho lưu trữ nexus.Cách tải plugin maven lên kho lưu trữ Nexus?

Vấn đề của tôi là khi tôi upload các plugin của tôi để mối quan hệ qua web IU như phụ thuộc bình thường, maven không thể tìm thấy nó:

Plugin com.huawei: maven-dự án phiên bản plugin: 1.0 hoặc không thể giải quyết một trong các phụ thuộc phụ thuộc của mình: Không thể đọc mô tả tạo tác cho com.huawei: maven-project-version-plugin: jar: 1.0: Không tìm thấy com.mycompany: maven-project-version-plugin: pom : 1.0 trong http://localhost:8081/nexus/content/groups/public được lưu trữ trong kho lưu trữ cục bộ , độ phân giải sẽ không được xử lý lại cho đến khi cập nhật khoảng thời gian của nexus đã trôi qua hoặc cập nhật bị buộc -> [Help 1]

Nhưng khi tôi cài đặt plugin của mình để khoanh vùng cục bộ (không phải nexus) qua dòng lệnh, tất cả đều ổn.

Vì vậy, sự khác nhau giữa cài đặt plugin maven tùy chỉnh và cài đặt các đồ tạo tác "không phải là plugin" là gì? Có thủ đoạn nào không?

settings.xml của tôi:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 

    <mirrors> 
    <mirror> 
     <!--This sends everything else to /public --> 
     <id>nexus</id> 
     <mirrorOf>*</mirrorOf> 
     <url>http://localhost:8081/nexus/content/groups/public</url> 
    </mirror> 
    </mirrors> 

    <profiles> 
    <profile> 
     <id>nexus</id> 
     <!--Enable snapshots for the built in central repo to direct --> 
     <!--all requests to nexus via the mirror --> 
     <repositories> 
     <repository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </repository> 
     </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </pluginRepository> 
     </pluginRepositories> 
    </profile> 
    </profiles> 

    <activeProfiles> 
    <!--make the profile active all the time --> 
    <activeProfile>nexus</activeProfile> 
    </activeProfiles> 
</settings> 
+0

Cần biết thêm về thiết lập maven của bạn. Bạn có đang sử dụng bất kỳ kho lưu trữ plugin nào trong tệp settings.xml hoặc pom.xml của mình không? – Michael

+0

@Michael Tôi đã thêm tệp settings.xml của mình, như bạn nói. Nhưng tôi nghĩ, vấn đề không có trong đó. Tôi có thể tải xuống tất cả các phụ thuộc khác từ nexus: các phụ thuộc của tôi từ các kho lưu trữ được lưu trữ và tất cả các phụ thuộc khác từ các kho lưu trữ proxy. Tôi có thể tải xuống plugin của mình, nếu tôi đánh dấu chúng là . Nhưng khi tôi thử đặt chúng như là maven không thể tìm thấy nó. – Sergey

Trả lời

8

Vấn đề đã được giải quyết. Vâng, tôi không biết làm thế nào, nhưng hôm nay tất cả là công việc. Tôi nghĩ vấn đề nằm trong bộ nhớ cache của Nexus. Tôi vừa xóa kho lưu trữ được lưu trữ và tạo lại nó. Có lẽ, có ít phương pháp cấp tiến hơn, nhưng tôi không biết chúng =) Xóa tạo tác và sau đó chỉ cần "hết hạn bộ nhớ cache" không giúp đỡ trong trường hợp của tôi.

Vâng, câu trả lời cho câu hỏi của tôi: Không có bất kỳ sự khác biệt nào giữa plugin cài đặt và tạo phẩm không có plugin trong Nexus, ngoại trừ một. Nếu bạn chọn GAV Definition: GAV parameters, bạn phải chọn "maven-plugin" trong combobox "Packaging".

Tôi nghĩ rằng không cần phải viết hướng dẫn từng bước, nó rất đơn giản. Chỉ cần chọn kho lưu trữ được lưu trữ của bạn -> tab Tải lên tác phẩm và điền vào các trường bắt buộc.

4

Ngoài ra để thêm rằng bạn cũng phải tải lên pom của plugin Maven của bạn. Nếu bạn không Nexus sẽ tự động tạo một cái không chính xác. tức là nó sẽ chỉ là một pom cơ bản bao gồm phiên bản, artifactID, bao bì và groupID.

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