maven的打包命令--assembly&install和maven update之后jdk版本变回1.5的问题
在进行maven项目打包时,可以有另个命令assembly和install
一、install
命令格式:mvn install
pom.xml中的写法
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.hcx.transferdata.TransferData</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
二、assembly
命令格式:mvn assembly:assembly -DskipTests
pom.xml中写法
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<archive>
<manifest>
<mainClass>com.hcx.transferdata.TransferData</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- <encoding>UTF-8</encoding> -->
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<finalName>inoutdata</finalName>
</build>
此种打包方式会把所有依赖的jar一同打包进去
很多时候都要使用第二种打包方式,因为第一种我试过的,老是报没有主清单属性。。。
感觉mvn install的方式是不可以把依赖的jar打包进去的?但是我印象里我的jar里是有依赖的jar的啊。。。反正assembly的方式保证能把依赖的jar都打包进去。欢迎各位大牛告诉我原因啊
三、关于maven update之后变回jdk1.5的问题
之前写的项目,我明明都是选的jdk1.8,就是把所有涉及到jdk版本的地方都该为了1.8,但是每次一执行maven update之后,就立马变回了jdk1.5。我看的很多博客都写的说在build标签中添加<source><target>标签就可以了,就像我上面两个例子那样,但是,不知道是不是我有毒,在我的ide里面就死活不行。解决办法就是,还要通过properties标签来指定,如下:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
网友评论