春風博客

          春天里,百花香...

          導航

          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統計

          公告

          MAIL: junglesong@gmail.com
          MSN: junglesong_5@hotmail.com

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          我的Maven2之旅:六.在Maven工程中將資源文件打包

          在Java項目中不只是jav文件,經常會有許多資源文件,如屬性文件,圖片資源什么的,如何把它們也一起加載到Maven工程中去呢?這個問題不難,利用resource就可以達到這個目的.因為${basedir}/src/main/resources都會編譯到jar文件中,而且該目錄下的內容將直接位于jar文件的頂部.

          下圖是在前面已經用到過的程序Source Comparer程序,唯一不同的是它的Browse按鈕是圖片式的.


          具體實現的代碼是這樣的:
          String location="/compare.GIF"
          URL imageUrl
          =BrowsePanel.class.getResource(location); 
                  
          browseBtn 
          = new JButton(new ImageIcon(imageUrl)); 

          從上面的代碼可以看出,程序是從類的根路徑取得了圖片資源compare.GIF,再賦給按鈕browseBtn.所以Maven工程中也應該是一樣的處理方式.現在的問題是如何把圖片資源compare.GIF加載到jar文件中去.

          Maven為此提供了一個方法,那就是在MavenResource\src\main下建立一個名為resources的目錄,再把圖片資源文件compare.GIF拷貝到里面,具體結構如下圖:


          執行mvn package后,用解壓工具如WinRar打開MavenResource-1.0-SNAPSHOT.jar,可以發現圖片compare.GIF已經被打進去了.


          如果打開cmd窗口,進入target目錄,執行命令:
          java -cp MavenResource-1.0-SNAPSHOT.jar com.citigroup.junglesong.Inlet


          執行的結果和在Eclipse中效果一致,這里就不再貼出了.

          上面說的是程序執行時使用資源的情況,如果是測試代碼需要使用資源的話,可以${basedir}/src/test下新建一個resources目錄,將資源放入其中,測試代碼可以使用這樣的方式使用資源:
          InputStream is = getClass().getResourceAsStream( "/test.properties" );
          可見測試代碼加載資源和主體代碼加載資源是很相似的.

          通過對pom文件中build 節點的修改,Maven還可以進行資源過濾,因為目前一時用不到暫時擱置一下,有興趣或需要的人可以到http://maven.apache.org/guides/getting-started/index.html#How%20do%20I%20filter%20resource%20files? 去看看.

          本文例子下載:
          http://www.aygfsteel.com/Files/sitinspring/MavenResource20070620211407.zip

          posted on 2007-06-20 16:54 sitinspring 閱讀(4403) 評論(5)  編輯  收藏 所屬分類: Maven2之旅

          評論

          # re: 我的Maven2之旅:六.加載資源到項目中 2007-06-20 21:35 rubby

          you update so quickly ,haha   回復  更多評論   

          # re: 我的Maven2之旅:六.加載資源到項目中 2007-06-20 21:49 sitinspring

          @rubby

          Maven很龐大,不抓緊一點不行啊.有些東西還是跳過去了,只能以后再補了.




            回復  更多評論   

          # re: 我的Maven2之旅:六.在Maven工程中將資源文件打包 2007-06-28 15:46 qqq

          javaeye的鯊魚跑這里來干什么,還是繼續去磨嘴皮吧  回復  更多評論   

          # re: 我的Maven2之旅:六.在Maven工程中將資源文件打包 2009-07-10 00:04 Lin

          其實可以多做一些maven方面的交流, 或者說多promote一些相關的maven資料。 這樣大家都可以想你學習。 一起共勉吧。 做個程序員挺不容易的。 有經驗的人最好可以多share, 這樣新人可以站在巨人的肩膀上。 你覺得呢。 謝謝  回復  更多評論   

          # re: 我的Maven2之旅:六.在Maven工程中將資源文件打包 2009-07-10 08:44 ymcchen

          我現在是一個新人 公司的項目要用到這個東西
          我看了您的教程 好像一直不怎么懂 謝謝 賜教  回復  更多評論   

          sitinspring(http://www.aygfsteel.com)原創,轉載請注明出處.
          主站蜘蛛池模板: 霍邱县| 东辽县| 安徽省| 阿克陶县| 洞头县| 沈阳市| 宜州市| 荣成市| 小金县| 读书| 弋阳县| 富顺县| 眉山市| 大冶市| 烟台市| 屏南县| 平陆县| 阜新市| 四子王旗| 马鞍山市| 庄河市| 雅江县| 阜南县| 岐山县| 渑池县| 鄂托克前旗| 银川市| 崇州市| 辽中县| 田林县| 手游| 大姚县| 电白县| 六枝特区| 吉林省| 霞浦县| 平南县| 湖南省| 沙湾县| 阳高县| 方山县|