Sto provando a impostare una variabile di ambiente dalla mia build Gradle. Sono su MacOS X (El Capitan). Il comando è "gradle test".imposta una variabile di ambiente da una build Gradle
sto cercando questo nel mio build.gradle:
task setenv(type: Exec) {
commandLine "export", "SOME_TEST_VAR=aaa"
}
test.dependsOn setenv
e la compilazione fallisce:
Esecuzione non riuscita per l'attività ': myproject: setenv'.
è verificato un problema di partenza 'comando 'processo di esportazione''
Ho provato anche questo:
test.doFirst {
ProcessBuilder pb1 = new ProcessBuilder("export SOME_TEST_VAR=some test value")
pb1.start();
}
La build riesce. Tuttavia, se controllo la variabile d'ambiente nel mio test JUnit non riesce:
assertTrue(System.getenv().containsKey("SOME_TEST_VAR"));
C'è un modo per impostare una variabile d'ambiente da un Gradle costruire (nel file build.gradle)?
Aggiornamento:
ho provato in modo isolato: i valori non viene passato e il mio compito di prova riceve tutto, sia esso uno systemProperty, variabili d'ambiente o jvmArgs.
Quindi, non c'è niente di sbagliato con Gradle stesso qui.
Il problema sorge quando lo sto provando sul progetto reale. Usa Spring per l'iniezione di dipendenza. Potrei sbagliarmi, ma sembra che il quadro di primavera elimini quei valori da qualche parte.
Questo sottoprogetto è attualmente bloccato e non riesco a verificare la mia ipotesi in dettaglio in questo momento.
un altro fallito esperimento: 'test { systemProperty 'SOME_TEST_VAR', 'aaa' ambiente 'SOME_TEST_VAR', 'aaa' }' e nel test: 'booleano buono = System.getenv(). ContainsKey (" SOME_TEST_VAR ") || System.getProperties() containsKey ("SOME_TEST_VAR."); assertTrue (buono); ' – user3791111
Non riesco a far funzionare le interruzioni di riga qui anche dopo aver letto l'aiuto. Scusa, assumiamo semplicemente dove intendevo farli. – user3791111
Dovresti modificare la tua domanda, se hai altre informazioni da fornire. –