Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7914707
  • 博文数量: 124
  • 博客积分: 2880
  • 博客等级: 少校
  • 技术积分: 873
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 17:08
文章分类

全部博文(124)

文章存档

2011年(28)

2010年(60)

2009年(36)

我的朋友

分类: Java

2011-10-24 20:55:53

1. 将本地的jar包导入到maven中,也就是能够通过maven访问该包 
在项目的pom.xml中添加如下依赖:  
 
         jts-1.12
         jts-1.12
         1.0
         system
         D:\MyWorks\Java\workspace\lib\jts-1.12.jar
 
 
    说明: groupId、artifactId、version可以随便取值,只要不冲突就好, 关键是scope和systemPath,全路径。
 
另一个方法没有调试成功:
    mvn install:install-file -Dfile=D:\MyWorks\Java\workspace\lib\jts-1.12.jar -DgroupId=com.vividsolutions -DartifactId=jts -Dversion=1.0 -Dpackaging=jar
    Guide to installing 3rd party JARs

Often times you will have 3rd party JARs that you need to put in your local repository for use in your builds. The JARs must be placed in the local repository in the correct place in order for it to be correctly picked up by Maven. To make this easier, and less error prone, we have provide a goal in the install plug-in which should make this relatively painless. To install a JAR in the local repository use the following command:

mvn install:install-file -Dfile= -DgroupId= \ -DartifactId= -Dversion= -Dpackaging=
 
 
我的Maven2之旅:六.在Maven工程中将资源文件打包(转载)
2010年02月28日 星期日 下午 05:54
在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://www.blogjava.net/Files/sitinspring/MavenResource20070620211407.zip
阅读(3239) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~