...
(踩坑注:已知Windows中使用CRLF标识一行的结束,而在Linux/UNIX系统中只使用LF标识一行的结束。git设置core.autocrlf=true后,检出时git会把文本文件的换行符转化为CRLF(只转化纯 LF 的文件),提交时把暂存区的内容(也就是我们对工作区做的改动)转化为 LF 然后放入版本库。 也就是说,如果你是windows环境且core.autocrlf=true,那么从github上下载到本地的incubator-iotdb换行符会变成CRLF,所以直接这样执行mvn release:prepare -DautoVersionSubmodules=true,打出来的zip包里使用的仍然是CRLF,这样的影响之一是把zip复制到linux环境解压之后,会发现shell文件不可直接执行。网上似乎搜到一种办法是下载源码时暂时设置core.autocrlf=input,但是我没有试过,可能有其他副作用。我直接转到ubuntu虚拟机重新做这件事的,记得gpg key导入。)
(问题记录:有可能该mvn命令会编译失败。此时不要慌张,记录原因,并回滚。若编译失败,那么不会进行新的提交,即查看git log 发现没有变化,然后首先
$ git checkout -- .
$ git clean -f
将本地库恢复如初。
然后看一下具体是什么问题。
例如,Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. 这个是指的有项目中的依赖的jar包版本冲突,这时候要用exclusion来进行排除。具体内容可以google。
)
这个过程会自动地把pom中版本的“-SNAPSHOT”删除,然后在云端创建tag。
...