Maven报Plugin execution not covered by lifecycle configuration

同步笔记:http://app.yinxiang.com/shard/s7/sh/950c7080-ce28-444b-a802-ba15f3633413/bf6f44d7ea2859469db4114fa3dd962d

lifecycle mapping: 定义插件生命周期中必须要做的操作。
对于没有lifecycle mapping文件的工程,会报如下错误:
Plugin execution not covered by lifecycle configuration:
org.apache.maven.plugins:maven-antrun-plugin:1.3:run
    (execution: generate-sources-input, phase: generate-sources)
可采用如下三种方法修复
1. Delegate to a project Configurator(推荐的方式 )

2. 使用ignore目标
目的:忽略对此插件的检查
方法:修改pom.xml,使用pluginManagement对插件进行管理。注意,对于自定义的插件,还需要在下面进行定义。因为maven 插件运行时,是找标签下的运行,pluginManagement标签只是提供对插件的管理。

  
    
     org.eclipse.m2e
     lifecycle-mapping
     1.0.0
     
       
         
           
             
               some-group-id
               some-artifact-id
               [1.0.0,)
               
                 some-goal
               
             
             
               
             
           
         
       
     
    
  

有一个简单的修复试,就是直接用pluginManagement将问题插件包起来,结构如下:
   
           
       
   

3. 使用execute目标
目的:强制执行该插件
方法如下:修改pom文件,方法类似于ignore,只不过目标换为execute。注意:对于 execute目标,M2Eclipse不提供安全检查,也就是说用户得自己承担执行该插件的结果。

  
    
     org.eclipse.m2e
     lifecycle-mapping
     1.0.0
     
       
         
           
             
               <groupId>some-group-id
               some-artifact-id
               [1.0.0,)
               
                 some-goal
               
             
             
               
                 false
               
             
           
         
       
     
    
  

action红色部分可以直接写为。runOnIncremental增加构建,默认false就行。

遇到的问题: 希望能够自定义maven目录,不想把所有的源码放在src/main/java下,而是想自定义目录结构。
解决:maven编译默认是从src/main/java拿 源码,如果希望自定义目录结构,将自定义的目录也打入jar包中,需得在pom中增加 配置,可通过build-helper-maven-plugin插件来解决,如下:

                    org.codehaus.mojo
                    build-helper-maven-plugin

                    1.7
                   
                        
                          add-source
                              generate-sources
                             
                                   add-source
                             

                        

                   

                   
                         
                             
                              src/util
                              src/persist
                              src/base
                              src/brms
                             

                        
                   

   

对pom进行修改后,遇到问题: plugin not cover........
解决:按照ignore方法进行修改,错误解决
但是,由于自定义了打包插件,但是,通过工程右键-- >maven -->lifecycle mapping看到自定义的打包插件被ignore掉了,如下:
工程希望一定要执行bussinesspackageplugin 这个插件,生成特定目录结构,但是m2e ignore掉了,导致结果不理想。
修改如下:1. 把build-helper-maven-plugin 这个插件的检查ignore掉,
               2. execute 自定义插件BusinessPackagePlugin
               3. 1.2操作通过pluginManagement标签进行管理
               
最后修改完的pom如下所示:

         
              
                   
                         org.eclipse.m2e
                         lifecycle-mapping
                         1.0.0
                        
                             
                                  
                                       
                                            
                                                  org.codehaus.mojo
                                                  build-helper-maven-plugin
                                                  [1.7,)
                                                 
                                                       add-source
                                                 

                                            

                                            
                                                 
                                            

                                       

                                       
                                            
                                                  com.test
                                                             BusinessPackagePlugin

                                                  [1.2.1-SNAPSHOT,)
                                                  
                                                       packagee
                                                 

                                            

                                            
                                                 
                                            

                                       

                                  

                             

                        

                   

              

         


         
              
                    com.test
                    BusinessPackagePlugin

                    1.2.1-SNAPSHOT
                   
                        
                              package
                             
                                   packagee
                             

                        

                   

                   
                        
                             
                        

                   

              

              
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    3.0
                   
                         1.6
                         1.6
                         256M
                         UTF-8
                   

              


              
                    org.codehaus.mojo
                    build-helper-maven-plugin
                    1.7
                   
                        
                              add-source
                              generate-sources
                             
                                   add-source
                             

                        

                   

                   
                        
                             
                              src/util
                              src/persist
                              src/base
                              src/brms
                             
                        

                   


              

         

    

做了如下修改后,打包正常。lifecycle Mapping如下所示:

附:
M2E 加载lifecycle Mapping文件顺序:
1. 工程的pom.xml文件
2. 父项目的pom.xml文件,或者父父项目的pom.xml文件,以上类推
3. window --> preferences --> maven里的配置
4. M2Eclipse 扩展点
5. maven 插件默认的
6. M2Eclipse默认的。
谁先找到用谁。

参考文档:  https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html






你可能感兴趣的:(maven)