该文章中记录一些在使用maven的时候遇到的值得记录的问题。
1. deploy
在我们进行发包时,一般使用
mvn clean deploy
的命令。但是我们需要明白为什么要加上clean的这个选项。
如果我们没有加上clean的命令,则在具体执行指令的时候,并不会清除output(target)文件中的历史文件,这就导致打包上传到maven仓库中的jar包中将包含之前的旧代码。
在以往的工程中,就遇到过类似的情况。比如将某个类的文件路径从com.A改为了com.B,但是打包得出来的内容会报路径A和路径B同时存在的冲突导致的一系列问题。这个根本的原因大概率的就是某位同学在进行deploy时没有进行clean的操作导致的。
2. jdk版本不一致
再与其他系统进行交互的时候,发的api包对方再引入的时候,进行打包的时候,报了bytecode version: 52.0 与 bytecode version:50.0冲突的异常。
后来经过排查发现,原来是因为我们系统采用的是jdk 1.8,打出的包也是1.8版本的(52.0),而对方系统采用的是jdk 1.6,打出的包要求是1.6版本(50.0)。所以解决的方法是调整版本号,单独给对方发了一个1.6版本的包。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
通过将source和target均改为1.6,进行发包解决了问题。