Gradle не может правильно загрузить зависимости org.apache.logging.log4j - PullRequest
0 голосов
/ 01 декабря 2018

У меня проблема с тем, что gradle почему-то не может установить в приложении зависимости org.apache.logging.log4j.

Ниже приведен мой файл gradle.build,

plugins {
    id 'java'
    id 'war'
}

group 'com.hf'
version '1.0'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    jcenter()
}

compileJava {
    options.compilerArgs += ["-proc:none"]
}

dependencies {
    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'
    compile group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: '2.11.0'

    providedCompile 'org.hibernate:hibernate-core:5.3.7.Final'
    providedCompile 'javax.servlet:javax.servlet-api:3.0.1'

    testCompile group: 'junit', name: 'junit', version: '4.12'
}

Это на первый взгляд просто.У меня -proc: нет, потому что в противном случае возникла проблема с некоторым устареванием.Независимо от того, присутствует ли proc: none в файле Gradle, проблема сохраняется.Вывод gradle.build выглядит следующим образом ...

> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :war UP-TO-DATE
> Task :assemble UP-TO-DATE
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build UP-TO-DATE

BUILD SUCCESSFUL in 6s
3 actionable tasks: 3 up-to-date

Файлы зависимостей также присутствуют в каталоге кэша, C: \ Users \ MY_USER_NAME.gradle \ caches \ modules-2 \ files-2.1\ org.apache.logging.log4j

, содержащий следующие каталоги: log4j log4j-api log4j-bom log4j-core log4j-jcl log4j-to-slf4j

каждый из которых имеет соответствующий log4jВ них вложены банки.

Проблема в том, что Eclipse не распознает импорт log4j,

введите описание изображения здесь

В результате я могуне скомпилируйте мой простой класс,

package com.hf.config;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


/**
 * The Config class reduces the amount of magic strings in the application via the
 * getProperty method. It has a static string CONFIG_FILE indicating the path to the config file
 * which must be set manually
 * @version 1.0
 */
public class AppConfig
{
    static Logger log = LogManager.getLogger(AppConfig.class.getName());
    private static final String CONFIG_FILE = "./app_config.txt";

    /**
     * Gets a property from the CONFIG_FILE corresponding to propertyName
     * @param propertyName
     * @return a string value corresponding to propertyName
     */
    public static String getProperty(String propertyName)
    {
        Properties prop = new Properties();

        try(InputStream inStream = AppConfig.class.getClassLoader().getResourceAsStream(CONFIG_FILE))
        {
            if(inStream == null)
            {
                log.error("config error: did not find file '" + CONFIG_FILE + "', failed to load property " + propertyName);
                return null;
            }

            prop.load(inStream);
            return prop.getProperty(propertyName);
        } catch(IOException e)
        {   e.printStackTrace();            
        }

        log.error("config error: received property request '" + propertyName + "' which does not have a corresponding value in " + CONFIG_FILE);
        return propertyName;
    }
}

Я очень плохо знаком с gradle, это то, что мы используем на работе, поэтому я пытаюсь включить его в качестве менеджера зависимостей длямой личный проект, чтобы поближе познакомиться с ним.К сожалению, я провел два дня, пытаясь найти решение этой проблемы, и я надеюсь, что кто-то более знающий или опытный может помочь мне решить эту проблему.Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 01 декабря 2018

Я решил свою проблему, удалив проект из затмения, а затем повторно импортировав его.Кажется, это обновило все настройки, которые были неправильными, и все работает нормально.

Вначале я разочаровался в установке IntelliJ IDE.Когда я импортировал свой проект в IntelliJ, все работало нормально> ___ <. </p>

Это дало мне идею удалить проект из eclipse и повторно импортировать его, что также устранило проблему в этой IDE.Я могу только догадываться, что gradle или Eclipse не обновляли состояние проекта на каком-то уровне.

Хотя я рад, что прошел это, я также довольно раздражен.Надеюсь, это поможет в будущем тем, кто столкнется с подобными проблемами.

...