Как отобразить вывод log4j для задачи Gradle JavaExec?
Я хотел бы использовать задачи Gradle для выполнения команд Java для загрузчика данных salesforce, чтобы у нас могли быть задачи загрузки данных в автономном проекте. Я установил загрузчик данных в локальный репозиторий Maven и настроил свой проект gradle следующим образом:
build.gradle:
apply plugin: 'groovy'
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile gradleApi()
compile 'com.force:dataloader:42.0.0'
compile 'org.codehaus.groovy:groovy-all:2.4.7'
}
task generateKey(type: JavaExec) {
classpath sourceSets.main.runtimeClasspath
main = 'com.salesforce.dataloader.security.EncryptionUtil'
args '-g', 'seedText'
}
Эта проблема
Когда я выполню gradle generateKey
Задача успешно завершена, но не выводятся выходные данные EncryptionUtil. Я подозреваю, что это потому, что dataloader использует log4j logger и не печатает напрямую в стандартный формат? Есть ли какая-то дополнительная настройка, которую мне нужно сделать?
Я также попробовал задачу, которая вызывает EncryptionUtil.main('-g', 'seedText')
напрямую, но это также не будет показывать никакого вывода, если я не запущу задачу в режиме --info.
Спасибо за вашу помощь! Я ценю обратную связь и любые варианты, о которых я не думаю. Мы магазин, но, возможно, есть лучшее решение.
1 ответ
Blargh. Я не использовал ./gradlew
, Двигайся, здесь нечего видеть.
Чтобы внедрить конфигурацию log4j в вашу задачу javaexec, вам необходимо использовать следующую структуру (см. Параметр classpath):
//print you classpath fileCollection sourceSets.main.runtimeClasspath.each { println it} def result = javaexec { logger.lifecycle "executing cli command PoC" classpath sourceSets.main.runtimeClasspath //inject classpath main = "io.github.rockitconsulting.test.rockitizer.cli.RockitizerCLI" jvmArgs = ["-Dapp.home=${config.testProjectDir}"] args = ["create-test","AlexOne"] }
Добавьте свой каталог с log4j.xml или log4j.properties в путь к классам среды выполнения, добавив его в блок зависимостей в build.gradle следующим образом:
dependencies { runtime files(projectDir) compile fileTree(dir: 'lib/ib10', include: '*.jar') }