春风博客

春天里,百花香...

导航

<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.blogjava.net/Files/sitinspring/MavenResource20070620211407.zip

posted on 2007-06-20 16:54 sitinspring 阅读(4363) 评论(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.blogjava.net)原创,转载请注明出处.