zoukankan      html  css  js  c++  java
  • 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技术

  • 相关阅读:
    C#编程规范
    实用JavaScript代码库
    JSON入门
    asp.net基本事件
    iOS开发笔记 3、iOS基础
    iOS开发笔记 8、真机调试和发布软件
    数据同步框架MS Sync Framework不同场景使用例子和简要分析
    使用AppFabric 承载WCF和WF服务实例分析和说明
    .net程序员的iPhone开发MonoTouch
    iOS开发笔记 4、iOS中的Cocoa、设计模式等
  • 原文地址:https://www.cnblogs.com/woxingwoxue/p/9914910.html
Copyright © 2011-2022 走看看