maven的打包命令--assembly&install和maven update之后jdk版本变回1.5的问题

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>

推荐阅读更多精彩内容