Skip to content

18.2 Xây dựng tệp JAR thực thi

Việc xây dựng một ứng dụng Spring thành tệp JAR thực thi tương đối đơn giản. Giả sử rằng bạn đã chọn kiểu đóng gói là JAR khi khởi tạo dự án, thì bạn có thể tạo ra tệp JAR thực thi với lệnh Maven sau:

bash
mvnw package

Sau khi build thành công, tệp JAR thu được sẽ được đặt trong thư mục target với tên và phiên bản dựa trên các mục <artifactId><version> trong tệp pom.xml của dự án (ví dụ: tacocloud-0.0.19-SNAPSHOT.jar).

Hoặc, nếu bạn đang sử dụng Gradle, thì bạn có thể dùng lệnh sau:

bash
gradlew build

Với build bằng Gradle, tệp JAR kết quả sẽ nằm trong thư mục build/libs. Tên của tệp JAR sẽ dựa trên thuộc tính rootProject.name trong tệp settings.gradle cùng với thuộc tính version trong build.gradle.

Khi bạn đã có tệp JAR thực thi, bạn có thể chạy nó với java -jar như sau:

bash
java -jar tacocloud-0.0.19-SNAPSHOT.jar

Ứng dụng sẽ chạy và, nếu đó là một ứng dụng web, thì nó sẽ khởi động một máy chủ nhúng (Netty hoặc Tomcat, tùy thuộc vào việc dự án có phải là ứng dụng web reactive hay không) và bắt đầu lắng nghe các yêu cầu trên cổng server.port được cấu hình (mặc định là 8080).

Điều đó rất tuyệt để chạy ứng dụng cục bộ. Nhưng làm sao để triển khai một tệp JAR thực thi?

Điều đó thực sự phụ thuộc vào nơi bạn sẽ triển khai ứng dụng. Nhưng nếu bạn đang triển khai lên một nền tảng Cloud Foundry, bạn có thể đẩy tệp JAR lên bằng công cụ dòng lệnh cf như sau:

bash
cf push tacocloud -p target/tacocloud-0.0.19-SNAPSHOT.jar

Đối số đầu tiên của cf push là tên được gán cho ứng dụng trong Cloud Foundry. Tên này được dùng để tham chiếu đến ứng dụng trong Cloud Foundry và CLI cf, cũng như được sử dụng làm tên miền con nơi ứng dụng được lưu trữ. Ví dụ, nếu tên miền ứng dụng cho nền tảng Cloud Foundry của bạn là cf.myorg.com, thì ứng dụng Taco Cloud sẽ khả dụng tại https://tacocloud.cf.myorg.com.

Một cách khác để triển khai các tệp JAR thực thi là đóng gói chúng trong một container Docker và chạy chúng trong Docker hoặc Kubernetes. Hãy cùng tìm hiểu cách thực hiện điều đó ở phần tiếp theo.

Released under the MIT License.