Hướng dẫn deploy Java Project, Maven Project với Jenkins

Bài viết được sự cho phép của tác giả Trần Hữu Cương

Trong bài trước, mình thực hiện build 1 maven project với source lấy từ github thành 1 file .jar sau đó chạy file jar đó bằng tay.

Thực tế thì khi deploy ứng dụng, sau khi build được file .jar (hoặc là file .war.ear) thì người ta sẽ chạy file .jar đó giống như 1 service để chạy ngầm và quản lý. Hoặc với những file .war thì người ta sẽ cấu hình để sau khi build, upload file đó lên tomcat để chạy. Còn gần nhất là đang thịnh hành sử dụng docker để deploy thì người ta sẽ tạo 1 container, copy file .jar.war vào container đó và chạy.

Trong bài này mình sẽ hướng dẫn chạy file .jar tự động sau khi build giống như 1 service trên Ubuntu.

  Jenkins là gì? Build và deploy code nhanh chóng với Jenkins
  Chạy database migration khi deploy, nên hay không?

Hướng dẫn deploy Java Project, Maven Project với Jenkins.

Đầu tiên các bạn cần tạo 1 service chạy file .jar.

Ví dụ mình tạo 1 service tên là spring-boot-hello, service này thực hiện chạy file .jar ở vị trí

/home/stackjava/workspace/spring-boot-hello.jar

(Xem lại: Chạy file jar giống như một service trên Ubuntu)

Bài này mình sẽ sử dụng lại plan build trong ví dụ trước: Hướng dẫn build java project, maven project trên Jenkins

Trong phần Post Steps, chúng ta thêm các câu lệnh để chạy service (Mình dùng Ubuntu nên sẽ sử dụng Execute Shell)

Hướng dẫn deploy Java Project, Maven Project với Jenkins.

Mình sẽ sử dụng các câu lệnh để copy file .jar sau khi build vào folder /home/stackjava/workspace/spring-boot-hello.jar

Restart và kiểm tra lại status của service spring-boot-hello

echo '------- start copy jar to /home/stackjava/workspace ------------'
cp /var/lib/jenkins/jobs/spring-boot-hello/workspace/target/spring-boot-hello-0.0.1-SNAPSHOT.jar /home/stackjava/workspace/spring-boot-hello.jar
echo '------- finish copy jar -------------------------------------'
echo '------- restart spring-boot-hello service------------------'
sudo systemctl restart spring-boot-hello
echo '------- finish restart spring-boot-hello service'
sudo systemctl status spring-boot-hello

Hướng dẫn deploy Java Project, Maven Project với Jenkins.

Save lại và run lại plan build.

Lưu ý: Nếu bạn bị lỗi no tty present and no askpass program specified khi run plan build thì xem cách sửa tại đây.

Sửa lỗi sudo: no tty present and no askpass program specified

Kết quả sau khi chạy plan build:

Hướng dẫn deploy Java Project, Maven Project với Jenkins

Kiểm tra log của service spring-boot-hello:

  • sudo journalctl -f -n 100 -u spring-boot-hello

Hướng dẫn deploy Java Project, Maven Project với Jenkins

Mở brower và truy cập địa chỉ: http://localhost:8081

Hướng dẫn deploy Java Project, Maven Project với Jenkins

Trong các bài tiếp theo mình sẽ hướng dẫn deploy các project như node.js, typescript. Sử dụng docker để deploy.

References: https://www.jenkins.io/doc/

Bài viết gốc được đăng tải tại stackjava.com

Có thể bạn quan tâm:

Xem thêm Việc làm Java hấp dẫn trên TopDev