2015-01-03 17 views
7

Đây là tập tin build.gradledummy dự án của tôi:Publishing Gradle Snapshots địa phương

apply plugin: 'groovy' 

repositories { 
    mavenLocal() 
    mavenCentral() 
} 

dependencies { 
    compile 'org.codehaus.groovy:groovy-all:2.3.3' 
    compile 'org.slf4j:jcl-over-slf4j:1.7.7' 

    testCompile 'junit:junit:4.11' 
    testCompile 'org.mockito:mockito-all:1.10.8' 
} 

task sourcesJar(type: Jar, dependsOn: classes) { 
    classifier = 'sources' 
    from sourceSets.main.allSource 
} 

artifacts { 
    archives sourcesJar 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '1.11' 
} 

Khi tôi chạy gradle clean build -Pversion=1.2.3, điều này gói lên tất cả các mã của tôi và tạo ra một build/libs/dummy-1.2.3.jar cho tôi.

Tôi muốn biết tuyệt đối trần số tiền tối thiểu của Gradle mã cần thiết để tôi có thể công bố "giả" của tôi lọ để bộ nhớ cache Maven địa phương của tôi (mavenLocal()). Ngoài ra, tính năng này hoạt động như thế nào với phiên bản? Tôi có thể luôn chỉ định phiên bản cụ thể cho JAR giả, nhưng khi tôi xuất bản cục bộ, điều đó có ý nghĩa hơn (với tôi, ít nhất) để xuất bản các phiên bản SNAPSHOT. Tôi có thể chỉ cần chạy gradle clean build -Pversion=0.1.SNAPSHOT, nhưng sau đó mối quan tâm của tôi là liệu các dự án địa phương khác có nhận được các phiên bản SNAPSHOT mới nhất hay không.

Vì vậy, một lần nữa:

  1. mã tối thiểu để xuất bản dummy tại địa phương là gì?
  2. Bất kỳ cách nào, khi xuất bản tại địa phương, để chỉ định phiên bản SNAPSHOT mà các dự án khác luôn nhận bản sao mới nhất?
  3. Các dự án địa phương khác sẽ cần sử dụng để nhận số này SNAPSHOT? Một cái gì đó như compile ':dummy:LATEST'?
+1

Câu hỏi bạn đã trả lời có được trả lời không? Nếu vậy hãy chấp nhận câu trả lời. – Opal

Trả lời

1

1) Bạn chỉ cần làm một

gradle install 

2) Xác định bất kỳ phiên bản mà bạn thích - một phiên bản SNAPSHOT có ý nghĩa cho sự phát triển tích cực. Khi bạn cho rằng thư viện của mình ít có khả năng thay đổi, bạn chắc chắn nên sử dụng phiên bản không chụp nhanh.

3) Bạn phải chỉ định phụ thuộc vào phiên bản bạn có trong repo cục bộ của mình, giống như đối với thư viện của bên thứ ba.

+1

Plugin nào cần thiết để thực hiện điều đó? Tôi nhận được điều này khi tôi thử: '' ' Tác vụ 'cài đặt' không được tìm thấy trong dự án gốc 'kotti'. '' ' – Adeynack

7

Here Tôi đã chuẩn bị dự án mẫu cho bạn, đây là mức tối thiểu khi nói đến cấu hình build.gradle.

  1. Bạn cần thêm apply plugin: 'maven' và đặt group = 'somegroup'. maven plugin cho nhiệm vụ installgroup là bắt buộc để cài đặt tạo phẩm trong kho lưu trữ maven.

    Sau đó chạy gradle clean install. Nếu không có phiên bản nào được chuyển, nó sẽ đánh giá thành không xác định, nếu không có artifactId được định cấu hình, nó sẽ đánh giá là project.name. Here Bạn có thể tìm cách cấu hình các thuộc tính maven khác.

    Cài đặt ảnh chụp nhanh để phát triển địa phương chắc chắn là một ý tưởng hay.

  2. Nếu bạn muốn dự án khác luôn chọn phiên bản mới nhất của SNAPSHOT Bạn cần thêm đoạn mã sau vào build.gradle tập lệnh. Nó đảm bảo giải quyết phiên bản mới nhất.

    configurations.all { 
        resolutionStrategy { 
        cacheChangingModulesFor 0, 'seconds' 
        } 
    } 
    
  3. Trước hết Bạn cần phải thêm ảnh chụp repo để repositories khối (chỉ là một mẫu) - với repo maven địa phương, bước này là không cần thiết:

    maven { 
        url 'https://oss.sonatype.org/content/repositories/snapshots' 
    } 
    

    phụ thuộc nên được quy định như sau:

    group:artifact:0.+ 
    

Hãy hỏi trong trường hợp bất kỳ câu hỏi.

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