• 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技术

  • 相关阅读:
    DFS的联通性问题
    Stl-unordered_map 无序关联式容器的基本用法(xmind)
    【图论】匈牙利算法——社会人数规模专家
    AcWing 860. 染色法判定二分图
    AcWing 1227. 分巧克力(二分)
    【图论】【最小生成树】prim【AcWing】局域网&&繁忙的都市
    【图论】拓扑排序
    Stl—bitset用法
    vector< vector<int> > 的初始化
    Floyd——人人都是中间商(50%)
  • 原文地址:https://www.cnblogs.com/woxingwoxue/p/9914910.html
Copyright © 2020-2023  润新知