mybatis-generator相關(三)

     前兩篇對 mybatis-generator-core 源碼進行了修改,在必定程度上作到了方便使用。這一篇先將寫個測試程序 看看生成的結果, 而後用 maven assembly 將它打包生成一個 zip 文件。
     新建一個類 StartUp ,找到 org.mybatis.generator.api.ShellRunner 這個類,它就是生成文件的入口類,拷貝 106-117 行代碼,再稍微做下修改。
    
    
    
generatorConfig.xml resources 目錄下面,它裏面要定義輸出文件的目錄,若是不指定具體的路徑,默認是在當前文件夾下面生成。
    

     可是呢,這裏有個比較蛋疼的地方, mybatis-generator-core 默認是不給你生成文件夾的,不信?請看 org.mybatis.generator.internal. DefaultShellCallback 的第 50 行,當指定的目錄不存在時,就拋出 ShellException 異常,因此輸出文件也就不可能有了。這裏咱們註釋掉 51 行代碼,添加以下代碼:
    
    
     如今再來執行 StartUp 看看,發如今與 src target 同級目錄下生成了 mybatis3 目錄,裏面有相應的 pojo xml ,打開以後看看效果,與咱們改動代碼後預想的結果一致。那麼接下來就看看,如何將它打包輸出成下面這樣的效果。
    

     首先咱們新建一個 src/main/scripts/run.bat 文件,內容以下:
     java -jar mybatis-generator-1.3.2.jar -configfile generatorConfig.xml –overwrite
     pause

     其實就是一個 java 命令行,裏面加的參數都是 ShellRunner 須要的, 加上 pause 是方便查看輸出信息。
     而後修改 pom 文件,既然最終輸出有源文件 JAR 和編譯後的 class JAR ,因此咱們須要增長 maven-source-plugin maven-jar-plugin 這兩個插件,另外還用到了 maven-assembly-plugin 插件。這些 plugin 具體的用法,我就不講了,我只說下要注意的地方。
    

     注意紅色框的內容,表示我將打包的源代碼只會是原來的,增長的 com.bolo.StartUp 是不會包含進去的,並且這也不必添加進去。
    

     編譯以後的打包一樣只包含原來的代碼,而且必定要在這裏指定入口類。 classpathPrefix 是類目錄,爲空就是生成在當前目錄下。若是寫成 < classpathPrefix > lib/ </ classpathPrefix > 這樣,則表示生成的 mybatis-generator-1.3.2.jar 會在 lib 目錄下面。
    

     上圖 descriptor 裏面的內容代表了 assembly.xml 的位置,它能夠作不少自定義設置。
    

     這裏定義的 id 默認是加到生成的文件名後面的,但咱們在上圖中設置了 < appendAssemblyId > false </ appendAssemblyId > ,因此,這個 all-in-one 就不會加到生成的文件名後面了,若是想要這個名字,將 false 改爲 true 便可。 < format > zip </ format > 表示將生成一個以 zip 爲後綴的壓縮包。
    

     咱們最終是想把幾個文件都放在一個目錄下面,因此 outputDirectory 就不須要再定義其它的名字。經過前面的輸出知道,最後只會包含 generatorConfig.xml run.bat 這兩個文件,其它的配置文件並非咱們須要的,所以這裏須要排除它們。
     另外還有兩個 fileSet 是指定源代碼的 JAR 和編譯 class JAR ,這兩個設置和前面相似。
    
     有點補充說明:此例都是以 MySQL 數據庫爲例,因此運行是須要 mysql 的數據庫驅動的,但我又不想在輸出裏面包含這個 jar ,所以就在 generatorConfig.xml 文件裏面進行了配置,不清楚的能夠看看。
     最後的最後,這些咱們都作完了,那麼就能夠打包輸出了,使用 mvn package 或是在 Run As -> Maven Build -> Goals 裏面填寫 package ,點擊  Run
     源碼下載:  mybatis-generator-1.3.2.zip
相關文章
相關標籤/搜索