我正在嘗試使用 maven 構建 CI/CD 管道。我遇到的問題是在 application.properties 中我設定了這樣的變數:
database.mealTimeMongoPass=${MONGO_PASS}
database.mealTimeSecret=${SECRET}
database.connectionString=${ATLAS_STRING}
spring.data.mongodb.uri=${ATLAS_STRING}
我無法將它們設定為 gitlab。每次如果 gitlab 將始終構建包,我無法運行它,因為連接字串錯誤我收到錯誤: “連接字串無效。連接字串必須以 'mongodb://' 或 'mongodb srv://' 開頭
這里是我在 gitlab CI/CD 設定中設定的變數示例

在這里我嘗試在 gitlab CI/CD echo 中運行的代碼作業正常并顯示正確的變數值我嘗試過的每個 mvn 腳本都不起作用
script:
- echo $SECRET
- echo $MONGO_PASS
- echo $ATLAS_STRING
- mvn install -B # (I hope that application properties automatically get variables from gitlab env)
- mvn -DSECRET=$SECRET -DMONGO_PASS=$MONGO_PASS -DATLAS_STRING=$ATLAS_STRING clean install -B # (I found this solution on stack)
- mvn -Dspring-boot.run.arguments=--database.mealTimeSecret=$SECRET,--database.mealTimeMongoPass=$MONGO_PASS,--spring.data.mongodb.uri=$ATLAS_STRING clean install -B # (if I change here env variables for normal string it wont't build on gitlab)
我不知道我應該做什么,我不想在我的倉庫中保存變數,也不知道該怎么做。有人可以給我建議嗎?mvn 腳本在每次運行后在工件中構建 jar 檔案我下載它并運行以使用命令對其進行測驗
java -jar filename.jar
uj5u.com熱心網友回復:
有根據的猜測:您還沒有為 application.properties 屬性檔案啟用maven 過濾。
如果不進行過濾,這些占位符將不會被替換。
所以在你的 pom 檔案中有這樣的東西:
<project>
...
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
...
</resources>
...
</build>
...
</project>
uj5u.com熱心網友回復:
嘗試以下步驟并確保每個步驟都正常作業:
檢查您的分支是否受到保護。如果它不受保護,您將無法訪問定義的環境變數。
使用
export命令檢查環境變數是否設定正確:script: - export # - <other commands>在 POM 檔案中將過濾設定為 true。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/310858.html
下一篇:物件嵌套減少或映射為一個物件
