2

我已经为tycho 项目配置了一个 std 项目设置。构建效果很好:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]   

[INFO] root .................................. SUCCESS [  0.152 s]
[INFO] bundles ............................... SUCCESS [  0.008 s]
[INFO] com.project.pcbcalculator ............. SUCCESS [  3.649 s]
...(Other artifacts like target, features).... SUCCESS [.........]
[INFO] com.project.pcbcalculator.tests ....... FAILURE [  4.693 s]

除了测试。我总是遇到运行时错误 (13)

!MESSAGE Missing required bundle **com.project.pcbcalculator_1.0.0**

!ENTRY org.eclipse.osgi 4 0 2018-06-05 18:51:19.816
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: Bundle **com.project.pcbcalculator.tests** is not 
found

分析控制台日志得出的结论是测试项目无法启动,因为要测试的bundle没有加载。

问题是为什么,我该如何改变。根据教程,一切都应该没问题,并且第谷能够编译主包

4

2 回答 2

0

迟到的答案,但它可能会有所帮助。我的问题是 maven 使用的是 java 8,但我的项目需要 java 11。你可以mvn -v在终端中使用,它会告诉你 maven 正在使用的 java 版本。我关注了https://askubuntu.com/questions/740757/switch-between-multiple-java-versions 并更改了版本。更改后请记住也要注销并登录并在新终端中重试。

于 2021-10-20T08:17:56.923 回答
0

请将 org.eclipse.equinox.console 添加到 Require-Bundle。

在日志中查找执行测试的命令:

[INFO] Command line:
    [/usr/lib/jvm/java-8-openjdk-amd64/bin/java, -Dosgi.noShutdown=false, -Dosgi.os=linux, -Dosgi.ws=gtk, -Dosgi.arch=x86_64, -Dosgi.clean=true, -jar, /home/lupus/.m2/repository/p2/osgi/bundle/org.eclipse.equinox.launcher/1.5.100.v20180827-1352/org.eclipse.equinox.launcher-1.5.100.v20180827- ...

删除逗号并添加到末尾

-noExit -控制台

运行命令。您应该得到相同的异常 java.lang.RuntimeException

再次单击,您应该会看到“osgi>”提示。

osgi>diag com.project.pcbcalculator.tests .

您应该更详细地了解目标中缺少的内容。

于 2018-12-01T23:19:59.570 回答