`
agile_boy
  • 浏览: 547905 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

maven2的pom的依赖管理

    博客分类:
  • java
阅读更多
  给原来java系统新增自动打包功能的时候,因为原来的系统并没有采用maven那样的jar包管理,一般来说所有相关jar都在lib目录下边,而默认的maven2则采用集中式jar包管理,比如都放在${HOME}/.m2/repository,那么如何在原来lib基础上采用maven呢?查看POM的reference,发现dependency有个很有用的scope属性,这个可以解决上述问题:)
  首先将dependency的scope设置成system(默认是compile),然后增加systemPath,指定所需的具体jar文件。
   注意:
  1. systemPath必须是具体的jar,而不是jar所在目录.
  2. groupId, artifactId, version 必须设置,否则pom语法出错
  3. scope是system时候,maven将从systemPath中查找所需jar包,而不是从repository.
  示例片段如下:依赖lib/commons-logging.jar
 
xml 代码
 
  1. <dependency>  
  2.      <groupId>lib</groupId>  
  3.      <artifactId>commons-logging</artifactId>  
  4.      <version>1.0.4</version>  
  5.      <scope>system</scope>  
  6.      <systemPath>${basedir}/lib/commons-logging.jar</systemPath>  
  7.  </dependency>  
分享到:
评论
7 楼 lizhongkan 2013-06-29  
这样过度比较方便。但如果原来的项目,有几十个依赖的jar包,是不是要写几十个上述的配置,能不能以依赖目录的方式进行配置呢?比如${basedir}/lib
6 楼 agile_boy 2007-03-09  
lianghua21cn 写道
我和LZ有过类似的经历。

不过碰到一个问题就是使用maven打包的时候,这个jar会被maven忽略,不会被打包进去。

不知道LZ有没有碰到?

你是如何打包的啊?
我就是用package,再就是我利用maven的antrun插件,增加了一些ant下常用的copy等功能,希望对你有所帮助
5 楼 dearwolf 2007-03-08  
把它install到local repository或者建个私服来deploy
4 楼 lianghua21cn 2007-03-08  
我和LZ有过类似的经历。

不过碰到一个问题就是使用maven打包的时候,这个jar会被maven忽略,不会被打包进去。

不知道LZ有没有碰到?
3 楼 agile_boy 2007-03-06  
ok_winnerboy 写道
我觉得没任何意义, maven推崇的就是项目化的jar包集中管理,实在需要的话可以将任何jar包 install to local repository.
很多事情都是千里之堤,溃于蚁穴.

有时候,为了保证向后兼任,做一些牺牲是必要的,比如你既可以用maven打包,也需要保证原来系统能够按照其原来打包方式运行;而如果完全采用maven的repository,那么原来系统要做不少改动的
2 楼 ok_winnerboy 2007-03-04  
我觉得没任何意义, maven推崇的就是项目化的jar包集中管理,实在需要的话可以将任何jar包 install to local repository.
很多事情都是千里之堤,溃于蚁穴.
1 楼 lordhong 2007-03-01  
不错...一个人用用还可以...central repository的话就麻烦了...

相关推荐

Global site tag (gtag.js) - Google Analytics