您的位置:首页 > 其它

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

2008-03-06 16:55 267 查看
在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));

执行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/sitinspring
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: