MyBatis 3.5.6 源码编译

博文目录


源码编译

GitHub MyBatis 3 下载 MyBatis 最新 tag 的源码压缩包,如 mybatis-3-mybatis-3.5.6.zip

mvn clean
mvn compile -Dmaven.test.skip=true
mvn install -Dmaven.test.skip=true

MyBatis 源码导入IDEA

问题解决

我遇到了如下问题

虽然有些错乱,但还是能找到如下关键信息

[INFO] --- license-maven-plugin:3.0:format (default) @ mybatis ---
[INFO] Updating license headers...
[WARNING] failure occured while calling class com.mycila.maven.plugin.license.git.copyrightRangeProvider
java.lang.RuntimeException: Could not compute the year of the last git commit for file C:\mrathena\develop\workspace\idea\mrathena\mybatis-3.5.6\src\main\java\org\apache\ibatis\annotations\Arg.java

报错的应该是 license-maven-plugin 执行 format 命令的时候,该插件被用于在源文件上加 license 声明,声明里面有一个表达式 ${license.git.copyrightYears} 无法被替换,从而报错。因为源码是从tag里面下载的zip压缩包,其中不含 .git 版本信息,所以插件拿不到正确的值,无法完成替换。在源码目录下创建一个新的git仓库即可

[INFO] --- license-maven-plugin:3.0:format (default) @ mybatis ---
[INFO] Updating license headers...
[INFO] Updating license header in: C:/mrathena/develop/workspace/idea/mrathena/mybatis-3.5.6/.github/dependabot.yml
[INFO] Updating license header in: C:/mrathena/develop/workspace/idea/mrathena/mybatis-3.5.6/.editorconfig
[INFO] Updating license header in: C:/mrathena/develop/workspace/idea/mrathena/mybatis-3.5.6/pom.xml
...
[INFO] Updating license header in: C:/mrathena/develop/workspace/idea/mrathena/mybatis-3.5.6/src/test/java/org/apache/ibatis/type/zoneddatetimeTypeHandlerTest.java
[INFO] Updating license header in: C:/mrathena/develop/workspace/idea/mrathena/mybatis-3.5.6/src/test/java/org/apache/ibatis/type/YearMonthTypeHandlerTest.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  30.595 s
[INFO] Finished at: 2020-10-28T10:52:52+08:00
[INFO] ------------------------------------------------------------------------

使用 license-maven-plugin 为项目源文件顶部添加许可证

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...