英文:
Cannot customize the classpath of Eclipse JUnit Debug Configuration
问题
在VS Code中,我成功配置了在settings.json
的"java.test.config" / "classPaths"
部分运行测试的类路径。我将"testKind""
设置为"junit"
,并在"classPaths"
数组中添加了jar文件的列表。我感到非常高兴,它起作用了。
我尝试从Eclipse中做同样的事情,我认为可以使用调试配置来完成。我尽力在Dependencies
选项卡中添加所需的jar文件,但完全不起作用。当我点击“Show Command”时,我看到了来自Maven依赖项的大量classpath条目。无论我做什么,当我调试时,我发现执行过程都会进入Maven下的错误jar文件。
问题是,我如何确保运行测试时不需要的jar文件从类路径中移除?
我尝试添加了快照以澄清情况,但图像链接似乎已损坏。我将尝试稍后修复它。
英文:
In VS Code, I managed to configure the classpath for running the tests using settings.json
section "java.test.config" / "classPaths"
. I set the "testKind""
to "junit"
and added the list of jar files in the array "classPaths"
. I was so happy that it worked.
I tried to do the same from Eclipse, and I thought the way to do that is using Debug Configuration. I did my best to add the needed jars the Dependencies
tab, and it is not working at all. When I click "Show Command", I see a huge list of classpath entries which are coming from Maven Dependencies. No matter what I do, when I debug, I see that the execution is going to a wrong jar under Maven.
The question is how I can ensure that the unwanted jars are removed from the classpath when running the test?
I tried to add the snapshot to clarify and the link to the image appears to be broken. I will try to fix it later.
答案1
得分: 0
我通过定制引用项目的类路径解决了这个问题。主项目A正在引用项目B。我必须从A和B的pom.xml中删除不需要的依赖项,并在项目B中添加了一个名为userlib
的文件夹,其中包含所需的jar文件,因为出现问题的类位于项目B中。从Java Build Path/Libraries/Add Library/User Library 中配置了用户库以指向主项目文件夹下包含所需jar的userlib文件夹。
之后,类路径在.classpath
文件中成功更新如下:
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/userlib"/>
然后,它就像魔术般地运行了。无需在调试配置框中更新任何类路径。现在,我可以运行来自项目A的测试,它将调用项目B中的类/方法,并且测试成功通过。
我遇到了这个问题,因为在本地Maven仓库中安装的所需jar文件不正确,所以我必须从本地环境中的一个正确工作的实例中选择正确的jar文件。
英文:
I was able to solve the problem by customizing the classpath for the referenced projects. The main project A was referencing project B. I had to remove unwanted dependencies from pom.xml in A and B and added a userlib
(folder) with the needed jar files to project B since the failing classes were in project B. From Java Build Path/Libraries/Add Library/User Library. Configure the userlib to point to a userlib folder under the main project folder with the needed jars.
After that, the classpath was updated successfully in the .classpath
file as follows:
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/userlib"/>
Then, it worked like a charm. There was no need to update any classpath in the Debug Configuration box. Now, I am able to run the test from Project A that will call the classes/method in Project B and it passed successfully.
I faced this problem because the needed jar files which are installed in the local Maven repositories are not the correct ones, so I had to pick the correct ones from a proper working instance in the local environment.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论