Wpis z mikrobloga

#programowanie #java #spring #maven
Mam taki oto zestaw:
1. Prosta aplikacja w Springu trzymana w publicznym repozytorium na GitHubie
2. Postawiony u mnie Tomcat wraz z Jenkinsem

Aplikacja łączy się z bazą danych, mam zatem plik application.yml, który zawiera hasło, adres bazy itp. Mam go dodanego do .gitignore, bo nie chcę by było to widoczne na GitHubie. Jenkins buduje aplikację przy pomocy Mavena i korzysta z tego właśnie repozytorium na GitHubie. Aplikacja zostaje zbudowana, ale Tomcat nie może jej odpalić z racji braku ustawień połączenia z bazą. Czy mogę mavenowi jakoś podsunąć ten plik na czas builda? Tak by nie umieszczać go w repozytorium? Coś na zasadzie --Dspring.profiles.active ale z plikiem z konfiguracją a nie nazwą profilu?

Czy może się tym nie przejmować i umieścić to application.yml w repozytorium, bo i tak baza jest postawiona na tej samej maszynie co tomcat, więc adres do bazy jest jako localhost?
  • 25
@KubusiowyKubus: dzięki, spróbowałem tak zrobić. Zrobiłem export JDBC_TODO_USER="user" i export JDBC_TODO_PASS="password" (dodałem to do .bashprofile), w application.yml mam coś takiego (plus inne ustawienia, ale na razie tylko te dwa sparametryzowałem):

spring:
datasource:
username: ${JDBC_TODO_USER}
password: ${JDBC_TODO_PASS}

i niestety się wywala: Could not connect: Access denied for user '${JDBC_TODO_USER'@'adres-ip'
@KubusiowyKubus: Spróbuję jeszcze później na tym serwerze, na którym stoi ten mój Tomcat. Tylko że na razie nie mogę się do niego dostać po ssh, żeby poustawiać mu te zmienne - jestem na uczelni, a VPN do niego tu nie śmiga, blokują.
@KubusiowyKubus: Już wiem czemu nie działało - Eclipse. Uruchamiałem aplikację poprzez Eclipse'a i on najwidoczniej nie widzi tego co w .bash_profile. Uruchomienie z konsoli mvn spring-boot:run zadziałało od razu.