如何利用 maven plugin + Jenkins 自动化检测 License,网上相关文章较少,主要参考官网。
一个大型项目会有很多人开发,在引用依赖时很少关注其 License,但在商业产品中,这是非常需要注意的一点,单纯的 GPL License 是不能用于商业产品的。比如我经历的项目中,有 500 多个依赖,如果手动去检测是相当耗时的,如果某个同事突然引用了一个 GPL Liense 的依赖,通过自动化检测,每次发布前运行任务即可发现该问题。
Maven 插件配置
插件名称是:License Maven Plugin
maven 版本要求:3.5.4+
需要执行的 maven 命令:
mvn license:aggregate-add-third-party
在 mvn 命令中,可以通过 -D 参数添加配置,但这样做不方便,直接修改 pom 文件更合适。
在主 pom.xml 文件中,添加如下配置,将对我使用到的配置进行解释,详细的配置可查看官方文档。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.0.0</version>
<executions>
<execution>
<goals>
<!-- 该插件有很多种执行目标,比如 license-list 是用来列出可用的 license,add-third-party 用来检测单个项目中的 license -->
<!-- aggregate-add-third-party 表示检测多模块项目的 license -->
<goal>aggregate-add-third-party</goal>
</goals>
</execution>
</executions>
<!-- 设置配置,以下配置都是非必须的 -->
<configuration>
<!-- 设置检测结果文件的存放目录 -->