Maven build RCP projects — 引入不存在的artifacts

By | 2020年3月18日

最近Build项目时,发现build出的程序打不开。看build log,发现一个已经被删掉的bundle被引入进来,导致build出的程序不能用。

log记录:[WARNING] The following locally built units have been used to resolve project dependencies. XXX/1.0.0

问题原因

和普通maven build一样,Tycho build会使用本地Maven已经install了的artifacts。RCP项目有个target platform文件,Maven本地installed的artifacts会被加入target platform。当你只需要build部分artifacts时,这个特性就很有用。

解决办法

公司项目是在build机器上自动build的,而且build机器又不止一个,我不能去把每个机器上本地install了的XXX/1.0.0 artifacts删去。不过可以在maven命令后面加上-Dtycho.localArtifacts=ignore,这样build项目是就不会用本地artifacts。