maven打包不同jdk版本的包

from–https://blog.csdn.net/tiantiandjava/article/details/92971870

16 篇文章0 订阅

对于MAVEN项目,我们存在将一个工程同样的代码部署到不同的环境上去的场景,且这些环境的jdk版本可能会不同,那么如何一份代码打不同的jdk版本的包呢?

基于maven我们就可以很方便的做到这点。

1、在项目的pom文件中加入如下配置(主要配置)

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.apache.maven.plugins</groupId>
  5. <artifactId>maven-compiler-plugin</artifactId>
  6. <version>3.8.0</version>
  7. <configuration>
  8. <source>${java.version}</source>
  9. <target>${java.version}</target>
  10. </configuration>
  11. </plugin>
  12. <plugin>
  13. <groupId>org.apache.maven.plugins</groupId>
  14. <artifactId>maven-jar-plugin</artifactId>
  15. <version>3.1.0</version>
  16. <configuration>
  17. <archive>
  18. <manifest>
  19. <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
  20. </manifest>
  21. </archive>
  22. </configuration>
  23. </plugin>
  24. </plugins>
  25. </build>
  26. <profiles>
  27. <profile>
  28. <id>default</id>
  29. <activation>
  30. <activeByDefault>true</activeByDefault> <!–默认激活该profile–>
  31. </activation>
  32. <properties>
  33. <java.version>1.8</java.version> <默认用1.8版本>
  34. </properties>
  35. </profile>
  36. <profile>
  37. <id>jdk17</id>
  38. <properties>
  39. <java.version>1.7</java.version> <该配置用1.7版本>
  40. </properties>
  41. <build>
  42. <plugins>
  43. <plugin>
  44. <artifactId>maven-jar-plugin</artifactId>
  45. <executions>
  46. <execution>
  47. <phase>package</phase>
  48. <goals>
  49. <goal>jar</goal>
  50. </goals>
  51. <configuration>
  52. <classifier>jdk17</classifier>
  53. </configuration>
  54. </execution>
  55. </executions>
  56. </plugin>
  57. </plugins>
  58. </build>
  59. </profile>
  60. </profiles>

2. 用mvn命令构建项目

  1. mvn -P jdk17 clean
  2. mvn -P jdk17 install  #安装的时候会出现2个包,1.8版本的与1.7版本的都生成了,如:blog-1.0.2.jar、blog-1.0.2-jdk17.jar
  3. 如果需要发布项目到服务器
  4. mvn -P jdk17 -P <depoly配置ID> depoly

3. 项目中引用

  1. <!– 引用1.8编译版本 —>
  2. <dependency>
  3. <groupId>org.test</groupId>
  4. <artifactId>blog</artifactId>
  5. <version>0.1</version>
  6. </dependency>
  7. <!– 引用1.7编译版本 —>
  8. <dependency>
  9. <groupId>org.test</groupId>
  10. <artifactId>blog</artifactId>
  11. <version>0.1</version>
  12. <classifier>jdk17</classifier>
  13. </dependency>

 

上一篇
下一篇