2015-09-22 31 views
8

Tôi muốn xây dựng JAR với phiên bản tự xác định thông qua thông qua dòng lệnh, chẳng hạn như:Cách đặt project.version bằng cách chuyển thuộc tính phiên bản trên dòng lệnh gradle?

Khi tôi thực hiện gradle xây dựng nhiệm vụ như thế này:

gradle build -Pversion=1.0 

myproject-1.0.jar nên được tạo ra.

Tôi đã thử thêm dòng dưới đây để các build.gradle, nhưng nó đã không làm việc:

version = project.hasProperty('version') ? project['version'] : '10.0.0' 
+0

Các bạn đã thử với việc thêm tài sản hệ thống ('-D') thay vì tài sản dự án (' -P')? –

+0

@MisaLazovic Nó cũng không hoạt động. –

+0

Điều ngu ngốc, nhưng thử với định dạng 'gradle [option] [task]', không phải 'gradle [task] [tùy chọn]', tức là thử 'gradle -Pversion = 1.0 build'. Bất kỳ may mắn? –

Trả lời

8

Bạn không thể ghi đè lên các thuộc tính dự án từ dòng lệnh hiện có, hãy xem here. Vì vậy hãy thử để đổi tên một biến phiên bản để một cái gì đó khác với phiên bản và thiết lập nó với -P cờ trước khi lệnh, như:

gradle -PprojVersion=10.2.10 build 

Và sau đó trong build.gradle bạn

if (project.hasProperty('projVersion')) { 
    project.version = project.projVersion 
} else { 
    project.version = '10.0.0' 
} 

Hoặc như bạn đã làm với? : nhà điều hành

+0

hoặc: 'project.version = project.findProperty ('projVersion')?: '10 .0.0'' – Ajax

+0

hoặc 'version = findProperty 'projVersion'?: '10 .0.0'' nếu bạn giá trị ngắn gọn – Ajax

+0

hoặc, như câu trả lời tôi đã đăng:' version = (findProperty ('version') == 'unspecified')? '10 .0.0 ': phiên bản' – Ajax

6

Nếu bạn di chuyển version nhập cảnh vào gradle.properties tập tin bạn cũng có thể:

gradle clean build -Dorg.gradle.project.version=1.1 
+3

'-Dorg.gradle.project.version' là cách để dài :-) Nó thực sự đủ để cung cấp' -Pversion = 1.1'. – thokuest

+0

Có, có thể là tốt. – Opal

13

Tôi thấy rằng bạn cần phải đặt thuộc tính trong tệp gradle.properties và tham chiếu nó trong build.gradle để giải pháp trên hoạt động. Ngoài ra hãy chắc chắn rằng các tùy chọn đến trước lệnh (như đã đề cập ở trên).

gradle.properties nội dung:

version=1.0.12 

build.gradle nội dung:

version "${version}" 

Version sau đó có thể được ghi đè trên dòng lệnh với:

gradle -Pversion=1.0.13 publish 
+0

Đây là câu trả lời hay nhất, dễ tái sản xuất mà không làm lộn xộn mọi tập lệnh build.gradle. –

3

Nếu bạn cần một phiên bản mặc định khác với 'không xác định':

version = "${version != 'unspecified' ? version : 'your-default-version'}" 

phiên bản đèo qua dòng lệnh:

gradle build -P version=1.0 
1

version = (findProperty('version') == 'unspecified') ? '0.1' : version

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