[英]Cross-Platform AppData dir with Spring and Maven
我開發了將在Windows和Mac OS上使用的應用程序。 我在那里使用H2 db。 我想將數據庫文件存儲在AppData目錄中。 像這樣:
application.properties:
spring.datasource.url=jdbc:h2:${APP_DATA}/data/keywords
對於Windows , APP_DATA
應該為${user.home}/AppData/Roaming/
,對於Mac ,應${user.home}/Library/Application Support
。
我考慮過要同時為Windows和Mac使用兩個Maven配置文件(無論如何,我都會單獨提供它們),並以這種方式使用maven資源插件過濾:
spring.datasource.url=jdbc:h2:${user.home}${suffix}
問題是,我不能僅過濾suffix
而不會保留user.home
。 現在結果是我在Maven構建之后得到C:\\\\Users\\\\Denis/AppData/Roaming/Keywords
,這是不正確的,因為我需要user.home
在用戶的計算機上繼續。
目前,我僅看到將suffix
移動到單獨文件,然后從資源插件中排除application.properties
解決方案,然后以某種方式將其優先考慮為第二種。 還有其他想法嗎?
我需要做的是用反斜杠\\
來轉義${user.home}
:
application.properties
APP_DATA=\${user.home}${app.data.dir}
pom.xml
<properties>
<app.data.dir>/AppData/Roaming/</app.data.dir>
</properties>
對我而言,僅此而已,但可能還需要添加以下內容( docs ):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<escapeString>\</escapeString>
</configuration>
</plugin>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.