我需要在Eclipse打开时从命令行运行Maven。由于这可能会混淆Eclipse,因此我将两者配置为使用不同的输出文件夹(Maven写入target
,Eclipse m2e使用target-eclipse
)。这非常有效。
但是在我的一个单元测试中,我需要加载属于项目的一部分而不是类路径的类。基本上,我构建了自己的URL类加载器。现在,我有一个问题:要添加哪个类文件夹?
如果项目已打开,target-eclipse/classes
是正确的选择,否则我应该使用target/classes
。
假设我知道Eclipse文件夹和工作区文件夹。如何从Eclipse的子进程(不是Eclipse插件)中运行的Java代码中了解哪些项目是打开的,哪些不是?
由于在关闭项目时不删除文件夹,因此文件夹的存在不是一个好的标准。
[编辑] 基本上我的问题是:Eclipse必须将该信息存储在$workspace/.metadata
或$ECLIPSE_HOME/configuration
中的某个位置。我需要查看哪个文件?
答案 0 :(得分:1)
文件[Workspace_Home]/.metadata/.lock
告诉您工作区已打开。
工作区中项目的列表和设置位于[Workspace_Home]/.metadata/.plugins/org.eclipse.core.resources/.projects
。
好像开放的Java项目有一个文件夹 - 我仔细检查了它,看来我错了。[Workspace_Home]/.metadata/.plugins/org.eclipse.core.resources/.projects/[Project_name]/.indexes
,并且关闭了没有它。
但我刚刚检查了已关闭的Java项目有一个文件:[Workspace_Home]/.metadata/.plugins/org.eclipse.core.resources/.projects/[Project_name]/org.eclipse.jdt.core/state.dat
,而打开的项目没有它。
答案 1 :(得分:-1)
我只想使用一些配置参数(例如系统属性),告诉文件夹在哪里。有关如何在使用Maven运行测试时传递系统属性,请参阅http://maven.apache.org/plugins/maven-surefire-plugin/examples/system-properties.html。此页面中的第一个示例显示如何将构建目录作为系统属性传递。