源码编译
从 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
问题解决
我遇到了如下问题
虽然有些错乱,但还是能找到如下关键信息
[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] ------------------------------------------------------------------------