gpt4 book ai didi

java - Gradle 找不到依赖项

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:28:35 28 4
gpt4 key购买 nike

我正在尝试使用 Gradle,文件如下所示:

// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
// Use 'jcenter' for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
mavenCentral()
jcenter()
}

jar {
manifest {
attributes 'Main-Class': 'execute.Entry'
}
}

// In this section you declare the dependencies for your production and test code
dependencies {
// The production code uses the SLF4J logging API at compile time
compile 'org.slf4j:slf4j-api:1.7.12'
compile 'org.apache.logging.log4j:log4j:2.3'

// Declare the dependency for your favourite test framework you want to use in your tests.
// TestNG is also supported by the Gradle Test task. Just change the
// testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
// 'test.useTestNG()' to your build script.
testCompile 'junit:junit:4.12'
}

如你所见,我添加了两个依赖,想在一个类中使用

package execute;

import message.*;
import org.apache.log4j.Logger;

public class Entry {

public static void main(String[] args) {

Service s = new Service();
String msg = s.GetMessage();
LOGGER.info("Received msg: " + msg);

}
}

当我执行 gradle assemble 语句时,出现编译错误。

D:\Java\entrypoint\src\main\java\execute\Entry.java:4: error: package org.apache.log4j does not exist
import org.apache.log4j.Logger;
^
D:\Java\entrypoint\src\main\java\execute\Entry.java:12: error: cannot find symbol
LOGGER.info("Received msg: " + msg);
^
symbol: variable LOGGER
location: class Entry
2 errors
: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: 6.261 secs
Compilation failed; see the compiler error output for details.

我做错了什么?

更新我将代码更改为:

package execute;

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

public class Entry {

private static final Logger logger = LogManager.getLogger("HelloWorld");

public static void main(String[] args) {

Service s = new Service();
String msg = s.GetMessage();
logger.info("Hello, World!");

}
}

编译器提示:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
at execute.Entry.<clinit>(Entry.java:9)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

更新 2
执行后:

>gradle dependencies
:dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

archives - Configuration for archive artifacts.
No dependencies

compile - Compile classpath for source set 'main'.
\--- org.apache.logging.log4j:log4j-api:2.3

default - Configuration for default artifacts.
\--- org.apache.logging.log4j:log4j-api:2.3

runtime - Runtime classpath for source set 'main'.
\--- org.apache.logging.log4j:log4j-api:2.3

testCompile - Compile classpath for source set 'test'.
+--- org.apache.logging.log4j:log4j-api:2.3
\--- junit:junit:4.12
\--- org.hamcrest:hamcrest-core:1.3

testRuntime - Runtime classpath for source set 'test'.
+--- org.apache.logging.log4j:log4j-api:2.3
\--- junit:junit:4.12
\--- org.hamcrest:hamcrest-core:1.3

BUILD SUCCESSFUL

最佳答案

代替

import org.apache.log4j.Logger;

使用

import org.apache.logging.log4j.Logger;

并定义 LOGGER 的实例

private static final Logger LOGGER = LogManager.getLogger("HelloWorld");

查看此示例 http://logging.apache.org/log4j/2.x/manual/api.html

这与Gradle无关

关于java - Gradle 找不到依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932526/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com