I am trying to initialize my dataSource with the help of gradle however gradle is not putting the values into my yml
that is stored in a .properties on my machine i.e ~/.gradle
and I made a .properties file at that location.
In Gradle I made a method to get the values from the .properties file like so:
task copyDBConfig(type: Copy) {
from 'src/main/resources'
include 'app.yml'
into 'build/resources/main'
expand([
DB_URI: project.findProperty("dbURI") ?: "",
DB_USERNAME: project.findProperty("dbUsername") ?: "",
DB_PASSWORD: project.findProperty("dbPassword") ?: "",
])
}
war.finalizedBy(copyDBConfig)
Then in my yml
file I have:
spring:
datasource:
url: ${DB_URI}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
driverClassName: oracle.jdbc.OracleDriver
However when I build the war file and look in the app.yml
file the correct values are not there, just ${DB_URI}
etc and NOT the strings it should be getting from my .properties file and inputting from into my app.yml
file.
When I run the app I get the follow error:
java.sql.SQLException: Driver:oracle.jdbc.OracleDriver@af2025f returned null for URL:${DB_URI}
Note: Under build/resources/main/app.yml
the values from my app.properties
file are there, just not in the war file.