Je développe un projet Spring. Je voudrais charger les informations d'identification à partir de la ligne de commande ne pas les raconter dans le code. Je suis en train d'exécuter cette commande gradleImpossible de passer l'argument de la ligne de commande gradle au projet Spring (pas Boot)
gradlew build -Dspring.datasource.username=tester
et quand je démarre le projet de printemps, le programme arrête sur un point d'arrêt et je vois si variable est déclarée ou non. J'ai essayé d'utiliser -P au lieu de -D mais cela n'a toujours pas aidé.
Je déploie l'application de printemps à distance en utilisant bmuschko plugin que j'ai essayé d'utiliser, mais aussi sans succès. J'ai vérifié dans les propriétés du code java en utilisant System.getProperties() et l'objet Environment supporté par Spring.
gradlew cargoredeployremote -Dspring.datasource.username=tester
Les propriétés d'application sont chargées avec succès.
IMPORTANT: J'ai vu de nombreux didacticiels sur la façon de le faire, mais en utilisant Spring Boot, je n'utilise que des composants sélectionnés de Spring. Par exemple: http://nixmash.com/post/passing-arguments-to-spring-boot - cela ne fonctionne pas dans mon cas car je n'ai pas de tâche bootRun.
Des idées? Est-ce que je manque quelque chose dans mes pas?
Voici mon build.gradle
group 'example'
version '1.0.0'
apply plugin: 'application'
apply plugin: 'war'
apply plugin: 'java'
apply plugin: 'com.bmuschko.cargo'
apply plugin: 'org.liquibase.gradle'
compileJava.options.encoding = 'UTF-8'
mainClassName = 'api.optic.config.WebAppInitializer'
sourceCompatibility = 1.8
buildscript {
repositories{
jcenter()
mavenCentral()
}
dependencies{
classpath 'com.bmuschko:gradle-cargo-plugin:2.2.3'
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-RC3'
classpath 'org.liquibase:liquibase-core:3.4.1'
classpath "org.liquibase:liquibase-gradle-plugin:1.2.4"
classpath "mysql:mysql-connector-java:5.1.13"
}
}
project.ext {
springVersion = "4.3.6.RELEASE"
junitVersion = "5.0.0-RC3"
}
repositories {
mavenCentral()
}
dependencies {
compile "org.springframework:spring-core:${springVersion}"
compile "org.springframework:spring-context:${springVersion}"
compile "org.springframework:spring-context-support:${springVersion}"
compile "org.springframework:spring-beans:${springVersion}"
compile "org.springframework:spring-web:${springVersion}"
compile "org.springframework:spring-webmvc:${springVersion}"
compile "org.springframework:spring-orm:${springVersion}"
compile "org.springframework:spring-oxm:${springVersion}"
compile "org.springframework:spring-jdbc:${springVersion}"
compile "org.springframework:spring-test:${springVersion}"
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.38'
compile group: 'javax.mail', name: 'javax.mail-api', version: '1.5.6'
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.2'
compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: '2.9.0.pr2'
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jdk8', version: '2.9.0.pr2'
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.9.0.pr2'
compile 'javax.servlet:javax.servlet-api:3.1.0'
testCompile "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
}
cargo {
containerId = 'tomcat8x'
port = 8080
deployable {
context = 'example'
}
remote {
hostname = 'host.name.com'
username = 'tomcat'
password = 'pass'
}