2013-02-12 51 views
8

Tôi cố gắng để tự động quá trình xây dựng sử dụng android JenkinsJenkins Và Build android

Tôi đang sử dụng các trang web sau đây để đạt được điều này Link to site

Tôi thành công có thể để xây dựng nó trên máy tính của riêng tôi. Ban đầu tôi nhận được lỗi nói rằng tệp build.xml không tìm thấy (xây dựng bằng cách sử dụng kiến ​​yêu cầu tệp này). Vì vậy, tôi thực hiện "android update project". Vì vậy, nó tự động tạo ra tất cả các tập tin cần thiết cho kiến.

Bây giờ vấn đề của tôi bắt đầu khi tôi cố gắng lưu trữ repo của tôi đến máy chủ từ xa và cố gắng xây dựng từ một máy khác. Lỗi mà nó đưa ra là sdk.dir không chính xác. Khi tôi phân tích thư mục dự án đó là một tệp gọi là local.properties chứa đường dẫn SDK của máy đầu tiên của tôi, đó là sai cho các máy khác. Vì vậy, tôi thêm tập tin đó vào gitignore. Bây giờ tập tin đó không theo dõi và vì điều này, việc xây dựng không thành công.

Vì vậy, có cách nào để tự động tạo các tệp cần thiết cho kiến ​​sau khi jenkins đang nhân bản dự án từ repo từ xa không?

Trả lời

0

bạn có thể chỉnh sửa tệp local.properties trong thư mục không gian làm việc jenkins theo đúng đường dẫn sdk

+1

như thế nào? Điều này không trả lời câu hỏi về việc tự động tạo các tệp này ... –

+0

có giải pháp đó hoạt động, nhưng tôi cần phải tự động hóa số này –

1

Có.

Nếu bạn cài đặt Android Emulator Plugin cho Jenkins, bạn có thể thêm bước tạo "Tạo tệp xây dựng Android" vào công việc của mình.

Điều này sẽ tự động phát hiện bất kỳ ứng dụng Android, kiểm tra hoặc dự án thư viện nào trong không gian làm việc Jenkins của bạn và thêm/cập nhật tệp build.xml và local.properties nếu cần. Ngoài ra, nếu bạn đang sử dụng bước xây dựng Ant và đã có tệp build.xml trong kho lưu trữ của mình, bạn có thể bỏ qua nhu cầu tạo tệp local.properties, bằng cách chỉ định thuộc tính sdk.dir trong các tùy chọn Nâng cao của Ant .

2

Chúng tôi cũng tạo ứng dụng Android với Jenkins và cũng cần phải chỉnh sửa local.properties.

Trong trường hợp của tôi, tôi có tệp được cập nhật bằng đường dẫn đến SDK do chính Jenkins xây dựng. Ngay trước khi bắt đầu xây dựng.

Bạn có thể sử dụng lệnh sed đơn giản trên Linux hoặc lặp lại nội dung trên cửa sổ (ghi đè nội dung).

Ví dụ dòng chảy:

  1. SCM - nhận nguồn
  2. Sửa local.properties (như đề xuất trước đó)
  3. Run kiến ​​xây dựng

Lưu ý - nếu bạn đang sử dụng " Gọi Ant ", bạn nên thêm một bước" Execute Shell "trước để xử lý việc chỉnh sửa local.properties.

Tôi hy vọng điều này sẽ hữu ích.

+0

bạn có thể giải thích thêm một chút không. Tôi đang sử dụng mac –

+0

Xem chỉnh sửa của tôi. Mac giống như Linux trong trường hợp này. –

+1

Công trình này hoạt động, nhưng nếu bạn đang sử dụng "Gọi Ant", bạn không cần phải bận tâm việc tạo/cập nhật local.properties, vì bạn có thể chuyển đường dẫn SDK trong biến "sdk.dir" Ant. Ngoài ra, điều này không phải là đặc biệt có thể mở rộng khi bạn có nhiều dự án (ví dụ: tùy thuộc vào dự án thư viện hoặc dự án thử nghiệm). –

3

Từ trang web bạn liên kết đến, họ giải thích chính xác cách định cấu hình sdk.dir:

Cấu hình môi trường

Khi Jenkins xây dựng dự án của bạn với Ant, nó cần phải biết được nơi thư mục android sdk của bạn. Để thực hiện việc này, hãy nhấp vào Nâng cao trên mục tiêu Ant tạo bước bạn vừa định cấu hình và thêm biến sau vào trường Thuộc tính . sdk.dir =/opt/android-sdk-linux/

Đừng quên thay thế giá trị của biến bằng đúng vị trí nơi SDK Android được cài đặt trên máy chủ xây dựng của bạn.

Cấu hình công việc được thực hiện. Nhấp vào để lưu. Đã đến lúc kiểm tra bản dựng của bạn.

+0

tôi đã cung cấp đúng SDK trong máy chủ jenkins nhưng bằng cách nào đó nó đang lấy đường dẫn từ local.properties được theo dõi tập tin chỉ –

+0

Thật vậy ... local.properties chắc chắn không nên được theo dõi trong VCS của bạn: nó xác định các biến cụ thể cho từng môi trường phát triển (do đó tên) – etienne

1

Bạn có thể định cấu hình các thuộc tính kiến ​​trong jenkins. Vì vậy, bạn có thể chỉ định tất cả các thuộc tính của local.properties thông qua cấu hình công việc của jenkins.

Tất nhiên bạn sẽ phải cài đặt sdk android trên máy chủ xây dựng jenkins.

Vui lòng đọc this để biết thông tin về cách đặt thuộc tính kiến ​​với jenkins.

Thực tiễn tốt nhất là không nên đặt local.properties trong quản lý mã nguồn vì nhiều nhà phát triển và CI sẽ có các giá trị khác nhau cho các thuộc tính đó.

0

Tôi nghĩ bạn muốn thêm bước xây dựng "Create Android build files" vào cấu hình của mình. Đặt nó trước khi xây dựng kiến. Điều này gọi số android update projectandroid update lib-project. Đảm bảo bạn đã tham chiếu các phụ thuộc thư viện của bạn trong project.properties với các đường dẫn tương đối. Như thế này:

# Project target. 
target=Google Inc.:Google APIs:19 
android.library.reference.1=../external-libs/google-play-services_lib 
android.library.reference.2=../external-libs/android-support-v7-appcompat 

add Build Step - Create Android build files

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