Java 第一次编译时的渐变依赖项

Java 第一次编译时的渐变依赖项,java,gradle,compilation,dependencies,Java,Gradle,Compilation,Dependencies,我是gradle和其他构建工具的新手。 我正在尝试编写一段代码,使用log4j记录一些信息。 因此,我必须在代码中导入记录器org.apache.log4j.*。 我在项目中还有一个gradle文件build.gradle。 当我构建gradle文件时,我得到一个编译错误。我知道它会在编译时查找上述依赖项。但根据我的理解,gradle应该从存储库下载这个 如果我错了,请纠正我。请帮助我了解在这种情况下这是如何工作的 像这样创建build.gradle: group 'test' version

我是gradle和其他构建工具的新手。 我正在尝试编写一段代码,使用log4j记录一些信息。 因此,我必须在代码中导入记录器org.apache.log4j.*。 我在项目中还有一个gradle文件build.gradle。 当我构建gradle文件时,我得到一个编译错误。我知道它会在编译时查找上述依赖项。但根据我的理解,gradle应该从存储库下载这个


如果我错了,请纠正我。请帮助我了解在这种情况下这是如何工作的

像这样创建build.gradle:

group 'test'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.8.1'
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.8.1'
}
将Main.java添加到文件夹src/Main/java:

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

public class Main {
    private static final Logger logger = LogManager.getLogger(Main.class);

    public static void main(String[] args) {
        logger.info("started");
    }
}
并将log4j2.xml添加到src/main/resources:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

尝试启动main方法。 如果在IDE中出现一些错误,请尝试更新project。在Intellij IDEA中,您可以使用屏幕右侧的gradle->refresh project


希望,这将对您有所帮助。

您在构建脚本中声明了相应的依赖项和存储库了吗?是的,这是我的build.gradle文件
代码依赖项的一个片段{
编译组:'org.apache.logging.log4j',名称:'log4j core',版本:'2.7'}
非常感谢。成功了。我错过了一个依赖关系吗?这就是问题所在吗?很高兴听到:)在没有看到完整代码的情况下很难回答您的问题:)我是gradle的新手,我只是想了解这个构建工具是如何工作的。我只是复制了你的代码(gradle、java和log4j)并做了一个刷新项目。你只需将依赖项添加到build.gradle,在IDE中刷新项目(或开始构建项目),然后gradle开始从所有声明的存储库中查找所有依赖项并下载它。在我的示例中,gradle可以在maven central repos中找到log4j依赖项,但也可以声明任何其他依赖项。尝试阅读更多关于gradle的信息,官方网站上有很多文档。