Maven 多profile及指定编译问题的解决

 更新时间:2021年09月22日 14:29:23   作者:hongweigg  
这篇文章主要介绍了Maven 多profile及指定编译问题的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Maven 多profile及指定编译

要点

项目A依赖项目B,项目A、B都有对应的多个profile,通过mvn –P参数指定profile,只对A生效,对B不生效

项目A、B模块位于同一父项目,父项目构建时指定profile,可以传给A,B项目,A、B都使用同一指定的profile。

也可在父项目中定义属性,激活子项目profile,意即父项目 profile属性可传给各个子项目。

项目中定义的profile, 若<activeProfileDefault>设置为false,则不指定profile的情况下,该profil不会被执行。

实例

项目A 定义2个profile(aprofile、bprofile), 项目B定义2个对应的profile(aprofile、bprofile),则可将项目A、B中的aprofile激活方式设置为:

<activeProfileDefault>true</activeProfileDefault>

bprofile profile激活方式设置为:

<activation> 
 <property>                     
  <name>bprofile</name>                
 </property>            
</activation>

编译项目A时使用参数可编译bprofile版本:

mvn clean install -Dbprofile

编译项目A时不带参数可编译aprofile版本:

mvn clean install

Maven 指定编译版本

javac

先从javac的编译选项-source,-target说起:

  • -source:指定使用什么版本的JDK语法编译源代码。java语法总是向后兼容的,为何需要设置呢?不晓滴
  • -target:指定生成特定于某个JDK版本的class文件。高版本的class文件不被低版本支持,因此需要该项。注意,最好设置-bootclasspath指定对应JDK版本的boot classes文件,否则即使设置了-target也不能在指定版本上运行class文件

一般情况下,-target与-source设置一致,可以不用设置-target,但最好设置它。

maven

maven中可以指定JDK编译版本,还需要确定一下IDE中JDK的使用版本。

在最新的maven中,默认编译版本为1.6,所以需要自己设置为指定版本。

设置有两种方式:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<plugins>
    <plugin>    
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>

两种一致,都是使用maven-compiler-plugin实现的,插件会在编译时添加source,target选项。通过插件可以配置更多的选项。

在Java 9后,新增了选项release,同时指定编译和输出时的JDK版本。也能配置插件,但这里仅给出方便的方式:

<properties>
    <maven.compiler.release>9</maven.compiler.release>
</properties>

在spring boot中,有独属于它自己的配置方式,它也是通过插件实现的(spring boot项目默认添加了):

<properties>
     <java.version>1.8</java.version>
</properties>   

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用SpringBoot配置https(SSL证书)

    使用SpringBoot配置https(SSL证书)

    这篇文章主要介绍了使用SpringBoot配置https(SSL证书),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java实现读取txt文件并以在每行以空格取数据

    java实现读取txt文件并以在每行以空格取数据

    今天小编就为大家分享一篇java实现读取txt文件并以在每行以空格取数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Java基础之命名规范的详解

    Java基础之命名规范的详解

    这篇文章主要介绍了Java基础之命名规范的详解,文中有非常详细的代码示例,对正在学习Java基础的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • SpringBoot3-yaml文件配置方式

    SpringBoot3-yaml文件配置方式

    这篇文章主要介绍了SpringBoot3-yaml文件配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Java this super代码实例及使用方法总结

    Java this super代码实例及使用方法总结

    这篇文章主要介绍了Java this super代码实例及使用方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 基于java socket实现 聊天小程序

    基于java socket实现 聊天小程序

    这篇文章主要介绍了基于java socket实现 聊天小程序,代码分为服务器和客户端,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Mybatis返回Map数据方式示例

    Mybatis返回Map数据方式示例

    这篇文章主要为大家介绍了Mybatis返回Map数据方式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • screw Maven插件方式运行时在编译打包时跳过执行的问题解决方法

    screw Maven插件方式运行时在编译打包时跳过执行的问题解决方法

    这篇文章主要介绍了screw Maven插件方式运行时在编译打包时跳过执行的问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 如何解决Maven依赖无法导入的问题

    如何解决Maven依赖无法导入的问题

    本文介绍了如何通过在setting.xml中配置仓库坐标和在IntelliJ IDEA中进行相关设置来提高Maven下载Jar包的速度,首先在setting.xml中找到mirrors标签进行配置,然后在IntelliJ IDEA的设置中输入特定的命令
    2024-10-10
  • java关键字final使用方法详解

    java关键字final使用方法详解

    在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了。final是java的关键字,本文就详细说明一下他的使用方法
    2013-11-11

最新评论