我正在尝试构建dbeaver并在运行mvn package
时出现以下错误:
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: org.jkiss.dbeaver.slf4j 1.0.0.qualifier
[ERROR] Missing requirement: org.jkiss.dbeaver.slf4j 1.0.0.qualifier requires 'bundle org.slf4j.api 0.0.0' but it could not be found
我正在Windows 10上运行并使用apache-maven-3.6.1。奇怪的是,当我在Linux上尝试相同的步骤时,它的构建没有问题。
答案 0 :(得分:0)
更新
可能的原因是maven 3.6.1 https://www.eclipse.org/lists/tycho-user/msg08177.html
原始帖子
我想这里的问题是https://dbeaver.io/eclipse-repo/ p2站点缺少slf4j捆绑包,并且Tycho(?)无法解决该要求。我仍然不知道如何使独立的Maven构建工作,但是这是一个关于如何使用Eclipse(和嵌入式Maven)构建Windows二进制文件的丑陋的解决方法。
您可以使用 p2-maven-plugin 自己构建丢失的捆绑包。您可以临时修改product\localRepository\pom.xml
使其具有单个工件,而无需设置全新的项目,例如
...
<artifacts>
<artifact><id>org.slf4j:slf4j-api:1.7.26</id></artifact>
</artifacts>
...
现在建立那个(product\localRepository\
)项目并开始码头
mvn p2:site
start mvn jetty:start
现在,您可以将此临时更新站点( http://localhost:8080/site/
)添加到Eclipse安装中(帮助->安装新软件)并安装slf4j。您应该已经能够从Eclipse中运行DBeaver。
要构建二进制文件,将此临时仓库添加到主pom.xml文件中,例如在 local-contrib 之后。
<repository>
<id>more</id>
<url>http://localhost:8080/site/</url>
<layout>p2</layout>
</repository>
然后转到运行配置-> Maven Build-> dbeaver,输入 package 目标并勾选 Skip Tests ,单击运行并去喝杯咖啡。
如您所见,Eclipse使用了某种嵌入式maven运行时,因此我猜想它以不同的方式解决问题。
注意,如果您要更新本地git仓库,则可能需要大量更新Eclipse项目。我无法通过右键单击项目->配置->配置和检测嵌套项目来做到这一点:(但是删除Eclipse项目和嵌套项目(不删除底层文件)并重新导入Maven项目对我来说是成功的秘诀。 / p>
此https://github.com/dbeaver/dbeaver/issues/6115还存在一个未解决的问题。