Maven之——使用本地jar包并打包进war包里面的方法
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/52594602
很显然,这种方法是很不可取的,因为Maven是用来团队合作,以及发布开源代码的。而使用本地jar包,则使得Maven丧失了这部分的优点。不 过,我遇到的问题是,我想学习Maven,然后我以前的项目,公司的项目都不是用Maven的。然后我想引用其中的一些jar包,特别是某些项目 build之后在dist文件夹下的包。所以,才想出了下面的法子。
我先在我的Maven项目下建立一个lib文件夹,把我要用到的jar包都放到里面去。然后在pom.xml里添加如下的内容:
- <dependency>
- <groupId>com.weiresearch</groupId>
- <artifactId>webharvest</artifactId>
- <version>1.0.0</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/lib/webharvest.jar</systemPath>
- </dependency>
这里的groupId,artifactId,version都可以随便写。然后scope要写成system,systemPath就写为要引用的jar包路径。这里不知道能否批量导入,没测试过,不过貌似不可以。
但是,还有个麻烦问题,我把我的项目打包成war包的时候,它居然只有我写的代码,而不包括引用的jar包。这就很麻烦了,打包的war包就不能直接使用了。找来好久,终于找到原因了。首先是其他正常使用maven的包,如下:
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>provided</scope>
- </dependency>
这里引用的是servlet包,最重要的是scope这个字段,provided的意思,就是说这个jar包,在这个项目可能的运行环境里,都会提 供了的,所以就不用打包到war包里面了。因此,要使得war包里面包含servlet这个包,只要把scope这句给删除掉就可以了。
而上面利用system这个scope引入的webharvest包,同样也没有引入进去。看了下网上的评论,才说最好不要用system这个 scope。大概是说这个system指的是JDK里面会包含这个jar包吧。这个解决方法就麻烦人了,最后是看到了这个问答才解决了的:Maven 2 assembly with dependencies: jar under scope “system” not included ,解决方法如下:
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <webResources>
- <resource>
- <directory>${project.basedir}/lib</directory>
- <targetPath>WEB-INF/lib</targetPath>
- <filtering>true</filtering>
- <includes>
- <include>**/*.jar</include>
- </includes> </resource>
- </webResources>
- </configuration>
- </plugin>
directory字段指向的是包含你所有要用jar包的目录
targetPath则是编译后要把这些jar包复制到的位置
下面的filtering就是只导入所有以jar为后缀的文件
通过上面的设置,就能把你要的jar包导入进去了
Maven之——使用本地jar包并打包进war包里面的方法的更多相关文章
- Maven引入本地Jar包并打包进War包中
1.概述 在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来. 2. 拷贝至项目根目录 项目根目录即pom.xml文件所在的同级目录,可以 ...
- java-第三方包没有打进war包里面
java-web的项目中引用第三方的jar包,在打成war包部署测试,出现报错,提示找不到引用的jar 解决方案: 1.在eclipse的项目--右键属性---deployment assembly- ...
- maven加载本地jar
[问题描述] 由于对接公司外部产品,导致公司内网上的maven库中并不存在对应的SDK jar,因此,需要通过maven加载本地jar的方式来实现工程编译. [方法] 方法很简单, 1.在resour ...
- maven pom 引入本地jar包
maven pom 引入本地jar包 在pom.xml同级目录下新建lib文件夹,并放入本地jar包. 配置Jar包的dependency,包括groupId,artifactId,version三个 ...
- maven这些工具负责创建项目,然后maven负责打包好war包扔进tomcat容器,tomcat容器接受的只是jar包
maven这些工具负责创建项目,然后maven负责打包好war包扔进tomcat容器,tomcat容器接受的只是jar包 2.tomcat不管你什么编译的,也不管你开发工具是什么.Tomcat只接受w ...
- maven加载本地jar包到repository
maven加载本地jar到repository 这是一个常见场景,此处以本地opencv jar文件导入repository为例 1.Ubuntu下 mvn install:install-file ...
- 怎么将maven项目打包成war包
问题:我在eclipse上能运行,然后我想将这个maven项目打包成war然后放到另外一台机子上(其实是手动放在tomcat的webapp目录中),提供外部访问.现在问题是,一直maven项目打包一直 ...
- maven项目打包分析及打包后war包缺少配置文件报错的原因分析,使用progard混淆时配置分析
1.maven打包: 一直以来我都没太注意过在myeclipse下使用run as来clean居然对项目的target目录没有进行操作,要让操作有效,需要进入到maven build...选项下,进行 ...
- 将java project打包成jar包,web project 打包成war包的几种演示 此博文包含图片
转: http://blog.csdn.net/christine_ruan/article/details/7491559 http://developer.51cto.com/art/200907 ...
随机推荐
- 8088汇编跳转和PSW状态字寄存器
DDD 8088 汇编跳转 日期:2003年6月12日 出处:嬴政天下整理收藏 作者:看雪 人气: 8735 8088 汇编跳转 一.状态寄存器 PSW(Program Flag)程序状态字寄存 ...
- YTU 2858: 编程题AB-骨牌铺方格
2858: 编程题AB-骨牌铺方格 时间限制: 1 Sec 内存限制: 128 MB 提交: 87 解决: 23 题目描述 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出 ...
- mac系统下配置域名映射关系
1.cd /private/etc/ 先修改权限:sudo chmod 777 hosts vi hosts localhost:etc mhx$ cat hosts ## # Host Databa ...
- Masonry自动布局:复合约束
前言 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万 ...
- Ubuntu+anaconda环境里安装opencv
在Ubuntu的Anaconda环境下安装OpenCV比较方便,直接在终端中输入以下命令: conda install --channel https://conda.anaconda.org/men ...
- cmath函数整理
double a= pow(double x, double y)://返回x的y次方. double a= sqrt(double x)://返回x的平方根. double a=ceil(doubl ...
- .NETFramework:MemoryStream
ylbtech-.NETFramework:MemoryStream 1.返回顶部 1. #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, ...
- [App Store Connect帮助]七、在 App Store 上发行(3.3)提交至“App 审核”:解决 App 拒绝问题
如果“App 审核”或“Beta 版 App 审核”拒绝了您的 App,您可以与 Apple 沟通并在解决方案中心中解决问题. 来自 Apple 的通讯信息包含有关 App 拒绝的信息,其中包括该 A ...
- Word Cloud (词云) - R
在前面已经陆续总结了如何用 Python 和 JavaScript 创建词云了,今天要说的是 R.其实 SPSS 和 SAS 的 Word Cloud 扩展模板都是基于 R 实现的. >> ...
- 数字货币期货与现货JavaScript量化策略代码详解汇总
1.动态平衡策略 按照当前的 BTC 的价值,账户余额保留¥5000 现金和 0.1个 BTC,即现金和BTC 市值的初始比例是 1:1. 如果 BTC 的价格上涨至¥6000,即 BTC 市值大于账 ...