gpt4 book ai didi

java - Spring Data Jpa - 扫描测试文件夹中的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:34:52 24 4
gpt4 key购买 nike

我正在使用 Spring Data JPA,这很奇怪,但它会尝试扫描(在部署期间)测试文件,这会导致错误:

java.lang.ClassNotFoundException: org.junit.runner.RunWith
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
...
WARN : org.springframework.core.type.classreading.AnnotationAttributesReadingVisitor - Failed to classload type while reading annotation metadata. This is a non-fatal error, but certain annotation metadata may be unavailable.

classnotfoundexception 是因为测试依赖项在 maven 的“测试”范围内。

但我的问题是,为什么要扫描测试文件夹? (/src/main/test).

上下文配置如下:

 <jpa:repositories base-package="com.domain.repository" />

你能告诉我我做错了什么吗?我的.classpath内容如下:

<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
...

非常感谢您对此的帮助。

最佳答案

But my question is, why it is scanning test folder? (/src/main/test).

The context configuration is as follows:

<jpa:repositories base-package="com.domain.repository" />

准确地说,我不认为 Spring 正在扫描这个文件夹——毕竟它是你的源文件夹。它只查看已部署的包结构,我怀疑问题的原因与此有关。

我遇到了同样的问题,但它是由 Eclipse 中的错误部署配置引起的,而不是 Spring 特定的问题。我将 Eclipse 配置为在 src/test/java 中部署我的测试类到目标部署包,以便在我启动服务器时出现所有测试文件(当然具有相应的包结构)。但是,根据 .classpath 判断您发布的代码片段,我看到您明确将它们排除在部署之外。

不过,还有其他方法可以让类文件潜入您的部署中。您是否能够验证部署包中实际上不存在测试类?它们是否会被您设置的其他进程同步(可能是 FileSynch 插件)?

此外,您是否有任何其他带有配置的 Spring 上下文文件来扫描其他基础包?

您可以添加更多关于 Eclipse 配置的详细信息以及如何部署到测试服务器以帮助解决问题。

关于java - Spring Data Jpa - 扫描测试文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10375287/

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