程序员开发实例大全宝库

网站首页 > 编程文章 正文

maven profiles配置多环境构建(配置maven的环境变量)

zazugpt 2024-09-04 22:30:06 编程文章 23 ℃ 0 评论

class 增量发包改造为 jar 包方式发布

在上面项目中,由于不同数据库版本,依赖的 jar包版本不同;

  • oracle 11g 依赖数据库驱动 ojdbc6.jar
  • oracle 19c 依赖驱动包 ojdbc8.jar, orai18n.jar


现在要增加maven多环境构建,实现步骤如下:

  1. 新增 profile: oracle-11g,oracle-19c
  2. 动态引入依赖版本 ${oracle.jar},${orai18n.jar}
  3. 调整 插件中生成MANIFEST.MF的设置写入 Class-Path
  4. 优化: 未知的groupId使用 ${common.groupId},${common.version} 替换


配置变动如下

## 4 优化: 未知的groupId使用 ${common.groupId},${common.version} 替换
<properties>
    <common.groupId>local</common.groupId>
    <common.version>none</common.version>
	  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>

## 1 新增 profile: oracle-11g,oracle-19c
<profiles>
    <profile>
        <id>oracle-11g</id>
        <properties>
            <oracle.jar>ojdbc6</oracle.jar>
            <orai18n.jar>orai18n</orai18n.jar>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>oracle-19c</id>
        <properties>
            <oracle.jar>ojdbc8</oracle.jar>
            <orai18n.jar>orai18n</orai18n.jar>
        </properties>
    </profile>
</profiles>

## 2 动态引入依赖版本 ${oracle.jar},${orai18n.jar}
 <dependencies>
    <dependency>
            <groupId>oracle</groupId>
            <artifactId>${oracle.jar}</artifactId>
            <version>${common.version}</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/${oracle.jar}.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>${common.groupId}</groupId>
            <artifactId>${orai18n.jar}</artifactId>
            <version>${common.version}</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/${orai18n.jar}.jar</systemPath>
        </dependency>
 </dependencies>

<build>
 ## 3 调整 插件中生成MANIFEST.MF的设置写入 Class-Path
 <plugin>
   <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.4</version>
  <configuration>
     <archive>
     <!-- 生成MANIFEST.MF的设置 -->
     <manifest>
     <useUniqueVersions>false</useUniqueVersions>
  <!-- jar启动入口类 -->
  <mainClass>com.szkingdom.FileTools.UI.FileToolsSurface</mainClass>
  <!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 -->
  <addClasspath>true</addClasspath>
  </manifest>

  <manifestEntries>
     <!--将依赖.jar  写进MANIFEST.MF文件中的Class-Path-->
     <Class-Path>lib/xxx.jar lib/${oracle.jar}-${common.version}.jar 
     lib/${orai18n.jar}-${common.version}.jar
       </Class-Path>
  </manifestEntries>
  </archive>
  <!-- 指定打包后 jar包的位置 -->
  <outputDirectory>out</outputDirectory>
  <excludes>
       <exclude>*.jar</exclude> <!--排除打包后的 jar文件本身-->
  </excludes>
  </configuration>
 </plugin>

</build>          


每次构建打包前,勾选对应环境 profile ,然后刷新maven

然后打开 project structure,可以看到依赖版本是动态引入的

mvn clea package 打包后,不同环境验证即可

# 使用 id=oracle-19c  的 profile  进行构建
mvn clean package  -Dmaven.test.skip=true -Poracle-19c  

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表