解决maven-compiler-plugin编译没有配置文件的情况

解决maven-compiler-plugin编译没有配置文件的情况,第1张

解决maven-compiler-plugin编译没有配置文件的情况 问题描述

通过测试发现,使用下面两种compile编译方式是有区别的。

区别:

  1. 第一个是idea自带的。
  2. 第二个是我项目中自行配置的maven-compiler-plugin。

使用区别:

  1. idea自带compile执行效果:
  2. 手动在maven配置的编译插件执行效果:

综上

  • 这就是问题所在 ,maven自带的只对java文件进行编译,对resources资源文件夹不做任何处理。而idea自带的compile会先拷贝resources下的配置文件到target,再进行编译。
解决问题

发现了问题所在那就好办了。

  1. 点击idea的compile->resources查看其执行log,发现有maven-resources-plugin:3.2.0:resources输出记录,因此猜测idea是使用了这个叫maven-resources-plugin插件进行资源拷贝。
  2. 因此来到maven仓库搜索maven-resources-plugin,将其加入pom.xml配置文件。
  3. 模仿idea的resource,执行新加入插件的resource命令。
  4. 查看效果,发现效果不错,同时也验证了我们的猜想,仅仅只拷贝了资源文件。适合资源文件和java文件分开修改的情况分开使用resource和compile命令。
附 如何将一个插件绑定到idea的构建生命周期?


比如将拷贝resources *** 作绑定到上图的compile,当点击compile执行时,自动执行资源拷贝。

    
        
            
                org.apache.maven.plugins
                maven-resources-plugin
                3.2.0
                
                    
                        
                            src/main/resources
                        
                    
                    target/classes
                
                
                    
                        my-resources-copy
                        compile
                        
                            copy-resources
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.6.0
                
                    1.8
                    1.8
                    UTF8
                
            
        
    
  • configuration:配置输入输出目标。
  • phase:绑定到哪个阶段。参考:Maven 构建生命周期。如果是绑定到compile阶段,也可以写成validate,只要在compile阶段之前就行;如果是同一阶段,在pom.xml中插件先定义先执行。
  • goal:执行的 *** 作。我们知道,一个插件中可能包含多个 *** 作,例如:编译、测试编译、help。

    双击Lifecycle下compile执行效果:

    如图便是我们自己加入的插件。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4658063.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-06
下一篇2022-11-06

发表评论

登录后才能评论

评论列表(0条)

    保存