記錄一次使用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構建命令可在此查看)
點擊前往
個人博客 點擊前往