春風博客

          春天里,百花香...

          導航

          <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)原創,轉載請注明出處.
          主站蜘蛛池模板: 南漳县| 公主岭市| 大足县| 潼南县| 阿拉善左旗| 佛教| 阿尔山市| 西畴县| 昭苏县| 兰西县| 舞阳县| 普宁市| 读书| 房山区| 闻喜县| 福建省| 厦门市| 和顺县| 梁河县| 开封县| 仲巴县| 乐亭县| 亚东县| 宝丰县| 阳城县| 叶城县| 深泽县| 蒲江县| 上林县| 图片| 新邵县| 万全县| 若羌县| 南通市| 平凉市| 桦川县| 镇雄县| 正镶白旗| 嘉鱼县| 铜川市| 周至县|