maven構建openfire插件

記錄一次使用maven插件構建openfire插件的全部過程

因為項目需要, 故把openfire源碼下載下來修改發佈, 期間要使用自己編寫的openfire插件, 最新版的openfire使用maven構建, 故插件的項目構建方式也使用了maven, openfire的插件目錄結構非常特殊, 點我瞭解更多, 需要個性化 的maven配置才能生成可用的插件jar

項目結構

<code>project/
  |- pom.xml
  |- plugin.xml      
  |- readme.html     
  |- changelog.html  
  |- logo_small.gif  
  |- logo_large.gif  
  |- src
    |- main
      |- java(source dir)
      |- web/<code>

構建過程

首先把src-main下的java設置成source root文件夾, 使下面的類可以引用jdk環境, 編寫好代碼之後, 直接編寫pom文件, 用maven插件去定義生成好的jar包內部結構

<code>爬坑1: 與src平級的幾個文件不能打進jar包, 因為頂級文件夾並不是resources文件夾

解決1: 使用maven-resources插件, 指定resource位置, 與在jar裡的位置, 
也可以直接在build標籤下使用resources標籤聲明, 這是maven的約定寫法, 不過我還是聲明瞭插件

爬坑2: 仔細看openfire插件結構, 可以看到, 插件jar裡面有個lib文件夾, lib下存放的jar才是真正java代碼打包好的文件, 
我一開始想著使用resources插件, 把打包好的jar重複放進jar裡(相當於向自己裡放了個自己), 後來證明是矛盾的, 而且是不好使的

解決2: 使用ant插件, 定義最終的jar結構, 並且配置maven-jar, 只編譯java類, 其餘組織的工作交給ant插件做
/<code>

pom文件(附說明)

<code>
    4.0.0
     
    
        plugins
        org.igniterealtime.openfire
        4.4.2
    
    com.gomyck
    openfire-plugin-gomyck-sendmessage
    Openfire Plugin Gomyck Sendmessage
    
        消息插件
    

    
        UTF-8
    

    
         
        gomyck-sendMessage
        
             
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.5.1
                
                     
                    1.8
                     
                    1.8
                     
                    ${project.build.sourceEncoding}
                
            
             
            
                org.apache.maven.plugins
                maven-jar-plugin
                3.1.0
                
                     
                    
                        **/com/gomyck/**
                    
                    ${project.build.directory}
                
            

             
            
                org.apache.maven.plugins
                maven-resources-plugin
                3.1.0
                
                    
                        install
                         
                        
                            resources
                        
                    
                
                
                    
                        
                             
                            ${project.basedir}
                             
                            true
                             
                            
                                changelog.html
                                logo_large.gif
                                logo_small.gif
                                plugin.xml
                                readme.html
                            
                        

                        
                            ${project.basedir}/src/main/web
                             
                            web
                        

                    
                
            

            
                 
                maven-antrun-plugin
                1.3
                
                    
                         
                        install
                        
                             
                            run
                        
                        
                            
                                
                                
                                
                                
                                
                            
                        
                    
                
            

        
    
/<code>

ant文檔地址(所有的ant構建命令可在此查看)

點擊前往

個人博客 點擊前往


分享到:


相關文章: