升级maven-site-plugin至3.21.0后遇Doxia版本兼容错误求助
解决maven-site-plugin 3.21.0升级后的Doxia版本兼容问题
你升级maven-site-plugin到3.21.0以修复java.lang.NoSuchMethodError: 'void org.apache.maven.doxia.sink.Sink.verbatim()'错误后,遇到的新问题是站点皮肤与当前Doxia Sitetools版本不兼容——皮肤要求的Doxia版本范围是[1.11.1,2.0.0-M1),但插件自动引入了2.0.0版本。
以下是几种可行的解决方式:
降级maven-site-plugin到兼容版本
选择既修复原verbatim方法缺失问题,又依赖皮肤兼容的Doxia版本的插件版本,比如3.20.1。在pom.xml中配置:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.20.1</version> </plugin> </plugins> </build>升级站点皮肤到适配Doxia 2.0.0的版本
如果你坚持使用3.21.0版本的插件,需要同步升级站点皮肤到支持Doxia 2.0.0的版本。以默认皮肤为例,修改pom.xml中的皮肤配置:<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.21.0</version> <configuration> <skin> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-default-skin</artifactId> <version>3.3.0</version> </skin> </configuration> </plugin> </plugins> </reporting>强制指定兼容的Doxia Sitetools版本
在项目的dependencyManagement中强制锁定Doxia版本为皮肤要求的范围(比如1.11.1),但这种方式可能与3.21.0版本的插件存在潜在兼容风险,需要自行测试:<dependencyManagement> <dependencies> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-sitetools</artifactId> <version>1.11.1</version> </dependency> </dependencies> </dependencyManagement>
内容的提问来源于stack exchange,提问作者fr0
相关产品推荐
相关产品推荐

