1.maven生成不同版本jdk包

对于MAVEN项目,如果我们升级jdk版本但有些业务场景又不能升级,这个时候就需要根据不同的环境生成不同版本的jar包。
网上很多都是通过profile指定多个版本的jdk,利用classifier引用相应版本的jar,通过maven命令一步生成两个jar,一步生成的方式jar我们反编译编译后发现版本都是一样的。
这里我提供一种两部执行生成的方式。
1.配置settings.xml
settings文件,配置我们需要的jdk版本,这里我默认指定jdk18。

<profile>
	<id>jdk18</id>
	<activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	</activation>
	<properties>
		<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>
</profile>
<profile>
	<id>jdk17</id>
	<properties>
		<maven.compiler.source>1.7</maven.compiler.source>
		<maven.compiler.target>1.7</maven.compiler.target>
		<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
	</properties>
</profile>

2.配置pom
配置对应服务的pom文件,新增如下配置

 <properties>
      <jdk>1.8</jdk>
      <name></name>
 </properties>
 <build>
   <plugins>
        <!--生成指定版本jar-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${jdk}</source>
                <target>${jdk}</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
                <execution>
                    <id>default-jar</id>
                    <phase>package</phase>
                    <configuration>
                        <classifier>${name}</classifier>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

3.执行maven命令
我们分别执行命令:

clean install deploy

该命令会生成基于jdk18编译的jar,并上传到私库。

clean compiler:compile -D jdk=1.7 -D name=jdk17 install

该命令会生成基于jdk17编译的jar,并上传到私库。
4.验证生成的jar
到nexus私库下载我们的jar通过javap命令反编译查看生成的两个jdk版本的jar是否符合我们要求。

javap -verbose AaAccountlevelMasBean.class | findstr "major"

输出如下:

 major version: 52
 major version: 51

stanford parser和jdk版本对应关系
J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49,JDK 1.4 = 48,JDK 1.3 = 47,
JDK 1.2 = 46,JDK 1.1 = 45

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值