我不明白为什么在Eclipse
这两个步骤之后
Run as
->Maven clean
Project
->clean...
我仍然可以使用带有白色箭头的绿色图标运行我的程序吗?
.class
我以为清理后没有文件。我期待像这样的异常ClassNotFound
,但没有发生这样的事情。
你知道如何正确清理项目Eclipse
吗?
eclipse 中的 clean 与 maven 中的 clean 不同。Maven 的 clean 确实删除了所有已编译的资源(类等)。eclipse中的clean project是一种mvn clean compile
,即删除*class
文件并重新编译所有*.java
文件。
在您的应用程序的启动代码中,您可以添加:
System.out.println("Classpath=" + System.getProperty("java.class.path"));
您可以对其进行分析(通常我使用notepaddpp通过类路径分隔符和排序对其进行拆分)-也许它指的是maven repo中也包含类的jar?有时类文件夹首先位于类路径中,因此即使在 jar 中存在相同的类,它们也位于 jar 之前。
Maven
我刚刚用我的一个项目检查了这个现象,Eclipse
这就是我观察到的。顺便说一句,不要相信您在 中看到的内容Package View
,请使用您的文件系统资源管理器。
Run as -> Maven clean:删除目标文件夹 Project -> clean...:创建target
带有空子文件夹“ classes
”和“ test-classes
”的文件夹。在Eclipse's
Package Explorer
视图中,我看到一个空的目标文件夹。
在这一点上,我想说清理Maven
项目的正确方法Eclipse
是简单地运行为 ->Maven
清理。
现在来解决您的程序在清理后运行的原因。一旦我在项目中运行了一个程序,就用 *.class 文件和资源Eclipse
编译并填充了“ target/classes
”和“ ”文件夹。target/test-classes
在Eclipse's
Package Explorer
视图中,我仍然看到一个空的目标文件夹。
解决这个问题的诀窍是使用系统文件资源管理器查看项目目录和子目录,而不仅仅是使用Eclipse's
Package View
or Project View
。
这可能是因为eclipse会在你运行它时自动构建你的项目