2015-01-03 22 views
6

Tôi đang cố gắng duy trì cùng một kho lưu trữ trên hệ thống tệp của mình cho maven và gradle. Nhưng tôi đang gặp một số vấn đề.Tải xuống phụ thuộc vào bộ nhớ cache thay vì kho lưu trữ maven

Tôi có thông tin sau trong tệp build.gradle của mình.

repositories { 
    mavenLocal() 
    mavenCentral() 
} 

dependencies { 
    compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.3.9' 
    runtime group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.3.9' 
    runtime 'org.xerial:sqlite-jdbc:3.8.7' 
} 

GRADLE_HOME là D:\Programming\Java\gradle-2.2.1
GRADLE_USER_HOME là D:\Programming\Java\.m2

nhà gradle của tôi cũng giống như kho Maven tôi.

Nhưng khi các phụ thuộc được tải xuống qua gradle, chúng sẽ được tải xuống GRADLE_USER_HOME\cache thay vì thư mục lưu trữ. Tôi thiếu cấu hình nào?

EDIT Tôi đã kiểm tra chương về quản lý phụ thuộc của sách Gradle In Action. Không có gì. Tôi đã kiểm tra dependency management trên trang web của gradle nhưng nó cũng chỉ nói rằng bộ nhớ cache được sử dụng.

Dường như không có tùy chọn nào khả dụng ở chế độ gradle. Ai đó có thể xác nhận?

Trả lời

6

Không có cài đặt nào để thay đổi điều đó. Không có kho lưu trữ gradle như vậy. Ngoài ra, nó có vẻ như một ý tưởng tồi để có gradle sử dụng thư mục của kho lưu trữ như là bộ nhớ cache phụ thuộc vì lộn xộn.

Nếu bạn đang cố gắng xuất bản các tạo phẩm được xây dựng bởi gradle cho kho lưu trữ maven đã nói, có lẽ bạn nên xem xét plugin maven-publish.

Nếu bạn đang cố gắng sử dụng các hiện vật từ kho lưu trữ đó trong bản dựng của mình, cách để đi sẽ là thêm mavenLocal() vào kho của bạn và sau đó chỉ sử dụng chức năng compile trong các phụ thuộc của bạn.

+1

Tôi biết về cả hai điều trên. Phần này là gì nếu tôi muốn tạo tác được đặt trong kho lưu trữ maven vì vậy tôi có thể tái sử dụng trong các bản xây dựng gradle/maven khác? Cách tôi hiện đang làm nó bằng cách trước hết tải nó qua Maven và sau đó sử dụng nó trong Maven/gradle khi cần thiết. –

+0

@AseemBansal Bạn muốn đặt nó ở đó để bạn không phải tải xuống lại khi bạn thực hiện các bản dựng khác sử dụng cùng một tạo phẩm (bên ngoài)? Nếu gradle đã có một tạo phẩm trong bộ nhớ cache của nó, nó sẽ tái sử dụng bất cứ nơi nào nó có thể. – Insomniac

+3

Vâng đó chính là điều tôi muốn. Nhưng Maven sẽ không sử dụng vật phẩm đó. Tôi cần maven vì sự hỗ trợ cho [gradle bị hỏng] (http://stackoverflow.com/questions/22339142/gradle-1-10-internal-maven-repository-indexing-forever-in-intellij-13) trong IntellijIdea I không thể bắt đầu sử dụng gradle ở khắp mọi nơi. Ngoài ra đối với một số gradle lý do lẻ đang tải xuống các phụ thuộc và không sử dụng lại các phụ thuộc từ bộ nhớ cache nếu chúng không có trong kho lưu trữ cục bộ. –

0

Có, tôi đã đọc mã nguồn và chỉ được xác nhận Không có cài đặt nào để thay đổi điều đó.

Đây là giải pháp của tôi:

  1. cài đặt một trình quản lý kho maven địa phương như Nexus.

  2. định cấu hình bằng cách sử dụng kho lưu trữ đó.

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