2011-12-05 23 views
20

tôi muốn sử dụng kho lưu trữ cục bộ maven bổ sung vào kho lưu trữ từ xa. Tôi đã tìm thấy JIRA-Issue http://issues.gradle.org/browse/GRADLE-1173 cho điều đó, nhưng thích ứng với tệp xây dựng gradle của tôi theo cách đó, một số phụ thuộc snapshot chỉ có sẵn trong kho lưu trữ maven cục bộ vẫn không được tìm thấy. Tôi gặp lỗi khi không tìm thấy Snapshot-Dependency.Làm thế nào để cấu hình kho lưu trữ cục bộ và từ xa trong tệp xây dựng gradle?

Có thể có một kho lưu trữ maven cục bộ và từ xa không?

Dưới đây là phần có liên quan của gradle xây dựng tập tin của tôi:

apply plugin: 'maven' 

repositories { 

    mavenLocal() 

    maven { 
     credentials { 
      username "myusername" 
      password "mypassword" 
     } 
     url "http://myremoterepository" 
    } 

} 
+1

Tôi không thấy một lý do tại sao nó shouldn' t làm việc. Bạn có thể thử tạm thời loại trừ kho lưu trữ maven từ xa và các phụ thuộc có liên quan và xem điều gì xảy ra không? Có thể là 'mavenLocal()' không đoán chính xác vị trí của kho lưu trữ. Hãy thử trỏ nó đến đúng vị trí bằng các url 'mavenRepo:": ///home/user/.m2/repository "' thay vì 'mavenLocal()' và xem điều gì xảy ra. – rodion

+0

Hãy lưu ý rằng 'X.Y-SNAPSHOT' luôn luôn _older_ hơn' X.Y' vì vậy khi bạn thêm '-SNAPSHOT' cũng sẽ xuất hiện' Y' để chuẩn bị cho bản phát hành cuối cùng. Nếu bạn chỉ cần thêm '-SNAPSHOT' vào một' X.Y' đã được xuất bản thì nó sẽ tìm thấy 'X.Y' không phải là' X.Y-SNAPSHOT'. –

Trả lời

21

tôi cũng cần để thực hiện một thiết lập tương tự với dự án của tôi và tôi có thể xác minh các công trình thiết lập build.gradle của bạn với điều kiện Maven của bạn được thiết lập chính xác.

Gradle 's mavenLocal() dựa vào định nghĩa localRepository từ mavensettings.xml file:

<localRepository>USER_HOME\.m2\repository</localRepository> 

Các settings.xml phải ở trong một trong hai M2_HOME/conf hoặc USER_HOME/.m2 directory của bạn. Bạn nên kiểm tra:

  1. maven được cài đặt đúng
  2. M2_HOME biến môi trường tồn tại
  3. settings.xml có đúng localRepository định nghĩa ..
+0

Một số người ghi đè vị trí lưu trữ maven cục bộ (ví dụ trong IDE).Vì vậy, tôi muốn đặt vị trí rõ ràng cho repo maven: 'maven { url uri (local_repository_path) }' where 'local_repository_path' được lấy từ' gradle.properties' –

+0

Không ai biết những biến môi trường nào tôi phải cấu hình trên Windows ? cài đặt maven của tôi là trong đường dẫn, tôi có một biến einvironment M2_HOME trỏ đến thư mục nơi settings.xml được đặt, maven tự giải quyết kho lưu trữ tốt, nhưng gradle thì không. Nó xây dựng khi tôi publishToMavenLocal, nhưng không có gì xuất hiện trong kho lưu trữ. – UncleBob

0

Maven chỉ có thể sử dụng một đơn địa phương ("địa phương" = trên đĩa cứng của máy tính mà trên đó Maven chạy) kho.

Nếu bạn cần nhiều hơn, bạn tùy chọn là:

  • Chạy một máy chủ từ xa (như một proxy rộng công ty) và triển khai tất cả mọi thứ ở đó. Đặt máy chủ đó làm gương vào settings.xml của bạn.
  • Run mvn install để sao chép các hiện vật trong repo địa phương của bạn (rõ ràng là chỉ khi bạn không có nguồn)
  • Chạy một máy chủ địa phương
  • Sao chép các đồ tạo tác bằng tay vào repo địa phương của bạn
+0

Một địa phương duy nhất là đủ cho tôi - một đơn và một kho lưu trữ maven từ xa, không phải nhiều kho lưu trữ maven cục bộ – Cengiz

+0

Trong trường hợp đó, hãy chỉnh sửa câu hỏi của bạn và thêm thông tin này: bạn nhận được lỗi gì cho các ảnh chụp nhanh? –

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