저는 Spring Boot를 사용하여 작은 애플리케이션을 개발했습니다.이 애플리케이션은 HSQLDB를 당분간 사용자를 저장하는 데이터베이스로 사용합니다. 내가하고 싶은 일은 Maven의 resource 폴더 내에 데이터베이스를 저장하는 것이다. 나는 자바 응용 프로그램을 시작할 때마다WAR 내의 리소스에있는 HSQLDB
#...
spring.datasource.url=jdbc:hsqldb:file:src/main/resources/database/dashboard
#...
그래서, (오른쪽 봄 부팅 앱으로 내 응용 프로그램의 주() 및 실행 클릭), 데이터베이스를 잘 저장됩니다 내 application.properties 파일은 다음과 같은 구성이 포함되어 있습니다.
그러나 WAR 파일을 mvn clean install spring-boot:repackage
으로 패키징하고 Tomcat에 배포 한 다음 실행하면 데이터베이스가 분해 된 WAR에 저장되지 않습니다.
제 질문은 spring.datasource.url=jdbc:hsqldb:file:*
속성을 Maven 리소스 디렉토리에 저장하는 법을 알려주는 것입니다 (WAR를 분해 한 후에도 계속 나타납니다). pom.xml에서 사용되는 환경 변수를 사용할 수 있습니까?
편집 는 @ 스티브 C와 @fredt으로 답변을 감안할 때, 나는 데이터베이스가 전쟁에 저장되지 않아야 함을 깨달았다. 대신, 나는 사용자의 집 dir spring.datasource.url=jdbc:hsqldb:file:~/tomcat_webapp_data/dashboard/database
내에서 그것을 저장합니다 .. 정말 고마워요!
상대 경로를 사용하여 hsqldb를 가리키는 것 같습니다. Hsql의 파일 위치는 작업 디렉토리 (아마도 bin/in tomcat /)에 상대적입니다. 절대 경로를 사용해야합니다. – Redlab
1) Apache Derby를 사용하면 HSQLDB가 항상 RAM 메모리에로드되므로 더 큰 DB로 응용 프로그램을 종료 할 수 있습니다. 2) 전체 db 디렉토리를 포함하도록 빌드 스크립트를 변경 한 다음 db에 적절한 경로가 있는지 확인하십시오 서버 컨테이너에있는 파일 –
@Redlab 절대 경로를 사용하고 싶지 않습니다. WAR가 배치 될 시스템의 성격 (Linux, win ...)이나 실행 여부를 알지 못하기 때문에 자바와. – russellhoff