2014-12-04 37 views
8

Câu hỏi ngắn:Thuộc tính dòng lệnh khởi động mùa xuân có sẵn khi sử dụng khởi động mùa xuân: chạy không?

Làm cách nào bạn có thể định cấu hình hồ sơ môi trường hoặc thậm chí chỉ là tên tệp cấu hình thay thế cho spring-boot: run?

Phiên bản dài:

Có, tôi đã đọc tài liệu. http://docs.spring.io/spring-boot/docs/current/reference/html/index.html

tôi có các cài đặt cấu hình ứng dụng của tôi trong src/main/nguồn/application-mysql.properties:

# Specify the DBMS 
spring.jpa.database = MYSQL 

# Other Mysql config properties 

spring.jpa.hibernate.ddl-auto=create 

Có một application-hsql.properties tương ứng, trong đó có chứa cùng một bộ tùy chọn cấu hình cho Hsql. Không có application.poperties

Có một import.sql tương ứng:

insert into users(name, email) values ('User One', '[email protected]') 
insert into users(name, email) values ('Two User', '[email protected]') 

Các đơn vị kiểm tra chỉ tồn tại để kiểm tra sự hiện diện của những người dùng trong repo.

Tôi tin rằng đúng là bất cứ khi nào chạy thử nghiệm bằng cấu hình MySql, các hàng đó sẽ được thêm vào bảng người dùng. Khi thử nghiệm được chạy với hsql, db mysql sẽ không bị ảnh hưởng. Tôi tự bỏ bảng người dùng giữa các lần chạy vì tôi muốn xem thủ công khi nào nó tồn tại.

1) Nếu tôi chạy thử nghiệm mvn, các bài kiểm tra sử dụng db cấu hình:

mvn -Dspring.profiles.active=mysql clean test 

Tạo hàng cơ sở dữ liệu mysql và

mvn -Dspring.profiles.active=hsql clean test 

Không.

2) Nếu tôi thực hiện một gói, và sau đó chạy dẫn đến file jar, tôi có thể chỉ định một tên tập tin cấu hình:

java -jar -Dspring.profiles.active=mysql ./target/app.jar 

3) Nếu tôi chạy với lò xo khởi động: chạy, chỉ các thuộc tính trong application.properties (không tồn tại trong kịch bản thử nghiệm này) được phát hiện.

mvn -Dspring.profiles.active=mysql clean spring-boot:run 

Khởi động mùa xuân: chạy khác khi khởi chạy thử nghiệm đơn vị chạy và khởi động bình? Cấu hình db là một ví dụ, nhưng về lý thuyết tôi muốn có thể chỉ định một tập hợp các cấu hình dev khi ứng dụng đang được chạy cục bộ so với cấu hình sản xuất.

Trả lời

12

Các Maven spring-boot Plugin dĩa một quá trình mới, do đó bạn sẽ cần phải gửi bất kỳ thông số thêm để nó qua jvmArguments, ví dụ:

mvn lò xo khởi động: chạy -Drun.jvmArguments = "- Dspring. profiles.active = mysql"

0

Plugin cho phép bạn xác định hồ sơ cá nhân hoạt động (s) trực tiếp (có lẽ đó không phải là trường hợp 3 năm trước?):

mvn spring-boot:run -Drun.profiles=mysql 
Các vấn đề liên quan