maven打包不同jdk版本的包


對於MAVEN項目,我們存在將一個工程同樣的代碼部署到不同的環境上去的場景,且這些環境的jdk版本可能會不同,那么如何一份代碼打不同的jdk版本的包呢?

基於maven我們就可以很方便的做到這點。

1、在項目的pom文件中加入如下配置(主要配置)

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>    
    </build>
    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>     <!--默認激活該profile-->
            </activation>
            <properties>
                <java.version>1.8</java.version>            <默認用1.8版本>
            </properties>
        </profile>
        <profile>
            <id>jdk17</id>
            <properties>
                <java.version>1.7</java.version>            <該配置用1.7版本>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <classifier>jdk17</classifier>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

2、用mvn命令構建項目

mvn -P jdk17 clean

mvn
-P jdk17 install  #安裝的時候會出現2個包,1.8版本的與1.7版本的都生成了,如:blog-1.0.2.jar、blog-1.0.2-jdk17.jar
如果需要發布項目到服務器 mvn
-P jdk17 -P <depoly配置ID> depoly

3、項目中引用

<!-- 引用1.8編譯版本 -->
<dependency>
  <groupId>org.test</groupId>
  <artifactId>blog</artifactId>
  <version>0.1</version>
</dependency>
 
<!-- 引用1.7編譯版本 -->
<dependency>
  <groupId>org.test</groupId>
  <artifactId>blog</artifactId>
  <version>0.1</version>
  <classifier>jdk17</classifier>
</dependency>

 

本文主要技術點:maven中的profile、classifier技術

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM