簡體   English   中英

帶有Spring和Maven的跨平台AppData目錄

[英]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

對於WindowsAPP_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM