通常在一些特别情况下,我们需要为单独某一个构件打包多个不同jdk版本的包,用来支持不同的jdk,基于maven我们就可以很方便的做到这点。
1、在项目的pom文件中加入如下配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cc.mzone</groupId>
<artifactId>blog</artifactId>
<packaging>jar</packaging>
<version>0.1</version>
<url>http://www.mzone.cc</url>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>${jar.source}</source>
<target>${jar.target}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- 这里省略依赖 -->
</dependencies>
<properties>
<!-- 这里省略属性 -->
</properties>
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<jar.source>1.6</jar.source>
<jar.target>1.6</jar.target>
</properties>
</profile>
<profile>
<id>jdk15</id>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>jdk15</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<jar.source>1.5</jar.source>
<jar.target>1.5</jar.target>
</properties>
</profile>
</profiles>
</project>
2、然后执行命令打包
# mvn clean jar
# mvn clean jar -P jdk15
第一条命令打包使用默认的profile,编译的版本是1.6,生成的文件是blog-0.1.jar;而第二条命令打包指定使用jdk15这个profile,编译版本是1.5,生成的文件是blog-0.1-jdk15.jar。
3、项目中引用
对于项目中的引用,可以使用如下依赖写法:
<!-- 引用1.6编译版本 -->
<dependency>
<groupId>cc.mzone</groupId>
<artifactId>blog</artifactId>
<version>0.1</version>
</dependency>
<!-- 引用1.5编译版本 -->
<dependency>
<groupId>cc.mzone</groupId>
<artifactId>blog</artifactId>
<version>0.1</version>
<classifier>jdk15</classifier>
</dependency>
总结分析,为了达到对同一个构件使用不同的编译版本,我们综合使用了maven中的profile、classifier技术,按照我这里给出的例子,做法可以归纳为以下几点:
1、在项目的pom文件中定义多个profile,每个profile规定一个编译版本;
2、在profile中指定插件maven-jar-plugin的classifier配置,这个是指定筛选器的名称,即最后要附加在jar包名称后面的,比如这里的jdk15;
3、打包时指定不同的profile打包不同的版本,通过-P参数指定profile进行编译打包;
4、在其他项目中使用该构件时通过配置classifier属性来筛选不同的版本;
技术因需要而改变,自己备份下,也希望对大家有帮助。
分享到:
相关推荐
Maven是一个基于 Java 的项目管理工具,因此最基本的要求是在计算机上安装 JDK。 Maven 对系统要求如下表: JDK JDK 7.0 及以上。 内存 没有最低要求。 磁盘空间 Maven 安装本身大约需要 10MB。除此之外,其他磁盘...
maven的安装和配置2.1 在windows上安装maven2.1.1 检查jdk安装2.1.2 下载maven2.1.3 本地安装2.1.4 升级maven2.2 在基于unix的系统上安装maven2.2.1 下载和安装2.2.2 升级maven2.3 安装目录分析2.3.1 m2_...
本教程是基于MyEclipse环境下基于maven搭建的springmvc步骤(图文教程),文章结尾含有源码下载地址: 新建maven project File->New->Project 选择Maven Project 选择项目路径 Use default Workspace location默认...
基于Maven插件的全局性重用 1.5. 一个“项目”的概念模型 1.6. Maven是Ant的另一种选择么? 1.7. 比较Maven和Ant 1.8. 总结 2. 安装和运行Maven 2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven ...
1、开发环境为jdk1.8,基于maven构建 2、使用eclipase或Intellij Idea开发,推荐使用Intellij Idea 3、本项目使用了lombok,在查看本项目时如果您没有下载lombok 插件,请先安装,不然找不到get/set等方法 4、依赖的x...
技术栈 前端 Vue:Vue 是构建前端界面的核心框架,本系统采用 2.6.14 版本。 View UI:基于 Vue.js2.0 的组件库,...Maven:后端项目的打包工具,使用版本为 3.6.2。 NodeJs:前端项目的开发环境,使用版本为 16.13.0。
开发环境特别简单,只需要安装JDK1.8,Idea免费版和mysql即可。 安装平台 打开Idea,文件>新建>来自版本控制的项目... 输入https://gitee.com/huhuanan/m.manage.git,点击克隆。 配置Idea的maven配置。 运行Maven ...
主要包含了房屋租赁、房屋出售、房屋交易这三条业务线 前端 Vue:Vue 是构建前端界面的核心框架,本系统采用 2.6.14 ... Maven:后端项目的打包工具,使用版本为 3.6.2。 NodeJs:前端项目的开发环境,使用版本为 1
包含了房屋租赁、房屋出售、房屋交易这三条业务线,开发者可以在这个项目上进行二次开发,以满足自己的需要 ...Maven:后端项目的打包工具,使用版本为 3.6.2。 NodeJs:前端项目的开发环境,使用版本为 16.13.0。
maven编译安装pom.xml文件即可打包成war 登陆地址: 服务器:http://47.99.218.99:8080/springboot_v2/ 该数据库只有查询权限跟新增权限,所以修改以及删除会报错 本地 http://localhost:8080 默认帐号密码: admin/...
本科毕业设计_基于SpringBoot的医疗数据分析管理系统_前后端分离项目 各文件说明 BS_HIS 文件夹:是该项目的后端程序包 element-ui-test文件夹:是该...包版本 sklearn 0.24.2 jdk 1.8 其余都通过maven 包管理加载
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的医疗数据分析管理系统,内含Java完整源代码,数据库脚本 各文件说明 BS_HIS 文件夹:是该项目的...包版本 sklearn 0.24.2 jdk 1.8 其余都通过maven 包管理加载
本系统使用JAVA进行开发,基于spring-cloud进行系统搭建,使用maven进行构建工程。 环境准备 JDK1.8 mysql数据库,用于存储业务信息 redis数据库,用于处理用户登录会话信息 mongodb数据库,用于存储币币K线数据 安装...
基于Springboot + Mybatis框架,Maven构建。使用swagger来显示Restful风格的接口。 项目打包: mvn clean install 项目部署 因为商品表中包含有base64编码后的缩略图,所以使用Navicat等工具可能会出现导入失败的...
1、运行软件:jdk1.8、mysql5.0、ffmpeg、maven3 2、启动springboot项目:mvn spring-boot:run 3、项目打包:mvn package 4、运行jar命令:java -jar videoweb.jar
开发工具:JDK1.8+IDEA+GIT+Maven 一. 技术选型 后端:SpringBoot + MyBatis + MySQL 前端:Layui + Thymeleaf layui 第三方的前端框架,把 CSS/JS/HTML 已经打包好,我们直接用 Thymeleaf 类似于JSP,...
数据库采用MySql数据库,开发工具使用MyEclipse和Eclipse都可以,这是一个maven类型的项目,所以需要配置好你的maven,JDK我开发时使用的JDK8.5版本,压缩包内我已将系统以及系统所需的插件和数据库.sql脚本打包好。...
本项目是基于Maven进行管理的项目. 为了方便使用,项目中依赖但是MAVEN远程库中没有的的jar包,在项目中会通过mvn指令把第三方的jar包打包到本地库中,然后和其他的jar库使用相同的步骤使用. NOTICE: 首先应该...
基于springboot+vue的在线考试管理系统源码+数据库+使用文档(毕业设计).zip快速运行 鉴于很多朋友拿到项目后不知道怎么快速的开始运行,特产出此文档 ...将项目在本地使用Maven打包并上传到服务器
基于 SpringBoot + Vue 前后端分离开发的一款动态个人博客系统,主要功能有文章管理、分类管理、标签管理、附件管理、评论管理和友链管理等。 技术使用 规范实现: 统一请求响应 统一异常处理 Java Bean Validation...