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构建命令可在此查看)

点击前往

个人博客 点击前往


分享到:


相關文章: