Ошибка сборки приложения с использованием пакета log4j с использованием инфраструктуры сборки gradle - PullRequest
0 голосов
/ 23 мая 2018

Я создал простой Java-проект, используя gradle, начиная с «gradle init --type java-application».

Содержимое основного Java-файла - «App.java»:

import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;
import java.util.*;


public class App {

    public static void main(String[] args) {
        System.out.println("Howdy");
    }
}

Содержимое файла "build.gradle":

apply plugin: 'java'
apply plugin: 'application'

repositories {
    jcenter()
}

dependencies {
    compile 'com.google.guava:guava:21.0'
    testCompile 'junit:junit:4.12'

    // Following added by me for log4j
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.0'
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.0'

}

mainClassName = 'App'

Судя по всему, файл log4j jar был успешно загружен gradle:

/home/ahmed/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.11.0/bede79a3f150711634a3047985517431bf6499f2/log4j-api-2.11.0.jar
/home/ahmed/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.11.0/e6b751e02120c08702d98750f6a80bc25343b7f5/log4j-core-2.11.0.jar

Существует несколько файлов log4j jar /файлы pom в каталоге ~ / .gradle.Когда я пытаюсь собрать, я получаю следующую ошибку сборки:

$ gradle build
:compileJava
/home/ahmed/temp/javatut/gradle-demo/src/main/java/App.java:5: error: package org.apache.log4j does not exist
import org.apache.log4j.Logger;
                       ^
1 error
:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 0.808 secs

Я новичок в gradle / java.Любая помощь будет принята с благодарностью.

Спасибо, Ахмед.

1 Ответ

0 голосов
/ 24 мая 2018

В файле build.gradle вы указываете зависимости log4j2 jars, но в коде вы используете log4j (версия 1) класс

import org.apache.log4j.Logger;

Этот оператор определяет класс Logger, который присутствует в log4j версии 1.

В log4j2 он изменяется на org.apache.logging.log4j.Logger -

import org.apache.logging.log4j.Logger;
...