我是gradle和其他構建工具的新手。 我想寫一段代碼來記錄一些使用log4j的信息。 所以,我必須在我的代碼中導入記錄器org.apache.log4j。*。 我在項目中也有一個gradle文件build.gradle。 當我構建gradle文件時,出現編譯錯誤。我知道它會在編譯時查找上面的依賴關係。但根據我的理解,gradle應該從存儲庫下載。首次編譯時的Gradle依賴關係
糾正我,如果我錯了。幫助我理解這種情況下的工作原理。
我是gradle和其他構建工具的新手。 我想寫一段代碼來記錄一些使用log4j的信息。 所以,我必須在我的代碼中導入記錄器org.apache.log4j。*。 我在項目中也有一個gradle文件build.gradle。 當我構建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 /主/資源:
<?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>
嘗試啓動主要方法。 如果在您的IDE中有一些錯誤,請嘗試更新項目。在Intellij IDEA中,您可以在屏幕右側使用gradle-> refresh項目。
希望,這會幫助你。
非常感謝。有效。 我錯過了依賴關係嗎?這是問題嗎? –
很高興聽到:)很難回答你的問題,而沒有看到完整的代碼:) – kurt
我是gradle的新手,我只是想了解這個構建工具的工作原理。我只複製了你的代碼(gradle,java和log4j)並做了一個刷新項目。 –
你在構建腳本中聲明瞭依賴依賴和存儲庫嗎? –
是的,這是我的build.gradle文件的片段 '代碼依賴{
\t編譯組: 'org.apache.logging.log4j',名稱: 'log4j的核心',版本: '2.7' }' –