`
fei_6666
  • 浏览: 208116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于maven2打包不同jdk版本的包

 
阅读更多
     通常在一些特别情况下,我们需要为单独某一个构件打包多个不同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属性来筛选不同的版本;

      技术因需要而改变,自己备份下,也希望对大家有帮助。
分享到:
评论

相关推荐

    jdk8、maven3.9安装包

    在安装JDK 8时,通常需要下载适合操作系统的安装文件,然后按照安装向导进行操作,包括选择安装路径、设置环境变量JAVA_HOME,以及确保PATH变量包含%JAVA_HOME%\bin,以便在命令行中能够直接运行Java相关命令。...

    基于maven创建web项目

    在本文中,我们将基于maven创建一个web项目,首先我们需要搭建maven环境,包括安装Myeclipse2013、Tomcat8.0、Jdk1.8和apache-maven-3.3.9。然后,我们需要配置jdk和maven的环境变量,包括设置JAVA_HOME和MAVEN_HOME...

    Maven发布Jar包中文乱码解决方法

    Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,广泛应用于 Java 项目的构建、测试和打包。然而,在使用 Maven 发布 Jar 包时,ometimes 中文字符会出现乱码问题。本文将详细介绍 Maven...

    m2e 适合 eclipse3.X jdk1.6 (maven2eclipse)

    它为Eclipse提供了对Maven项目无缝集成的能力,使得开发者在Eclipse环境中可以方便地创建、管理和构建基于Maven的Java项目。m2e不仅简化了Maven项目的导入与配置过程,还提供了自动构建、依赖管理、生命周期映射等...

    maven java 模板Linux环境 Java open-jdk17

    综合上述知识点,一个基于Maven的Java项目在Linux环境中,通常会涉及到OpenJDK 17的安装与配置,Maven的安装、配置及使用,以及Linux运维的基本操作。理解并熟练掌握这些内容,对于Java开发者和运维人员来说至关重要...

    apache-maven-3.5.2,需要jdk7及以上版本

    在使用这个版本的Maven时,需要注意的是,它要求至少安装Java Development Kit (JDK) 7 或更高版本。这是因为Maven自身是用Java编写的,需要JDK来运行。JDK 7及以上版本提供了必要的环境,使得Maven可以解析和编译...

    java+maven+tomcat+jenkins打包安装.7z

    1. 安装Java JDK:首先,需要在系统上安装Java的运行环境,这通常包括下载并安装JDK,设置环境变量,确保`java`和`javac`命令可用。 2. 配置Maven:接着,解压Maven的安装包,配置Maven的`conf/settings.xml`文件,...

    maven3.2.3+eclipse4.4+JDK1.8环境搭建

    本文将详细介绍如何搭建基于Maven 3.2.3、Eclipse 4.4(Luna)和 JDK 1.8 的开发环境。 **一、Maven 知识点** 1. **Maven简介** Maven 是一个强大的项目管理工具,由Apache软件基金会开发。它的核心理念是项目...

    Storm编程实践(安装Maven-使用Maven编译运行代码-mvn 打包)

    在安装 Maven 之前,我们需要确保我们的实验环境已经配置好了 Linux 操作系统、Hadoop 2.6.0 或以上版本、Zookeeper 3.4.6 或以上版本、Storm 0.9.6 或以上版本和 JDK 1.6 或以上版本。 安装 Maven 的步骤包括解压...

    java+Swing打包成exe可安装文件(可在无jdk环境机器上运行)

    为了使得基于 Java Swing 的应用能在没有 JDK 或 JRE 的环境中运行,我们需要将其打包成可执行的安装文件,通常是 .exe 格式,以便于Windows用户轻松安装和运行。 这个过程涉及几个关键步骤: 1. **构建可独立运行...

    已配置好的maven-jdk1.8版本

    1. **JDK安装**:下载并安装JDK 1.8,设置JAVA_HOME环境变量指向JDK的安装路径。 2. **Maven下载**:从Maven官网获取最新稳定版的Maven,并解压到指定目录。 3. **Maven配置**:修改Maven的配置文件`conf/settings....

    maven 3.5.2 maven 3.5.2 maven 3.5.2

    5. **支持Java 9**: Maven 3.5.2兼容Java 9,允许开发者在新的JDK环境下使用Maven。 **Maven 的使用流程** 1. **创建项目**: 使用`mvn archetype:generate`命令可以快速创建一个基于模板的新项目。 2. **编辑POM*...

    Java环境搭建JDK1.8+MAVEN3.5.4+tomcat8.5

    本教程将详细阐述如何在Windows操作系统上搭建一个基于JDK1.8、Maven3.5.4和Tomcat8.5的基础开发环境。 首先,我们从JDK1.8开始。Java Development Kit(JDK)是Java编程语言的软件开发工具包,它包含了编译器、...

    Maven2_基础教程

    ### Maven2基础教程知识点详解 #### 一、Maven2简介 Maven2是一个非常流行的Java项目管理和构建工具。它提供了强大的项目管理功能,能够帮助开发者自动化构建过程,包括编译、测试、打包、部署等多个阶段。Maven的...

    maven3.5+tomcat8+jdk8

    1. 首先,你需要在Linux系统上安装JDK。解压`jdk-8u201-linux-x64.tar.gz`到合适的目录,然后设置环境变量`JAVA_HOME`指向JDK的安装路径,并将`bin`目录添加到`PATH`,使系统可以找到Java命令。 2. 接着,安装Maven...

    apache-maven-3.9.6版本-内含安装说明-用于Mac系统

    在日常开发中,你还可以自定义Maven的配置,比如调整依赖的版本,设置编译源代码的JDK版本,或者创建自己的插件执行特定任务。Maven的可扩展性使其成为Java开发者的得力助手。 总之,Apache Maven 3.9.6为Mac用户...

    springboot-mavenBaseDemo 内容包含:springboot的maven基础状态,1.8JDK可以直接运行

    在"springboot-mavenBaseDemo"项目中,我们看到的是一个基于Spring Boot的基础应用,它使用了Java 1.8版本。这意味着该项目遵循了Spring Boot的最低Java版本要求,可以确保在广泛的环境中运行。Spring Boot 1.x版本...

    Maven2构建.doc

    2. **构建逻辑重用**:Maven2的构建逻辑是基于插件(plug-ins)的,每个插件对应特定的构建任务,如编译、测试、打包等。这允许过程的重复使用,提高效率。 3. **声明式执行**:构建过程完全由POM中的声明控制,...

    java教程之手把手教你用eclipse新建基于maven构建的spring boot项目.zip

    - 对于Linux用户,通常通过包管理器如`apt-get`或`yum`来安装JDK,然后配置`/etc/environment`或`~/.bashrc`文件以设置环境变量。 2. **Eclipse配置**: - Eclipse是一款强大的Java开发集成环境,需要下载最新...

    Maven安装与MyElipse8.5安装Maven插件

    2. **MyEclipse集成Maven**:MyEclipse是基于Eclipse的一款强大的Java集成开发环境,8.5版本原生集成了Maven支持。但由于原生插件可能存在BUG和稳定性问题,建议用户手动安装更稳定的m2e插件。 3. **卸载MyEclipse...

Global site tag (gtag.js) - Google Analytics