如果你的项目使用maven构建的话,当项目要上线,部署到服务器上去的时候或许会碰见这样的问题。问题就是,服务器上没有maven的环境,也就是说,项目所依赖到的那些仓库(repository)中的jar包你需要单独提取出来上传到服务器中去。
我知道pom类型如果是war的话,在使用mvn package 的命令就能自动将项目依赖的jar包打到web-inf 下的lib文件夹中。但是,如果pom类型为jar的话,当你调用mvn package命令,执行过程中不会将依赖的第三方包提取出来。
以前,我的做法是,等到项目要上线的时候将pom类型改成war,然后执行一下mvn package命令,这样先把所以依赖到的包提取出来,然后再把pom类型改成jar,这样虽然能完成任务,但是,总感觉这样的做法比较拙劣。
所以最近寻找了一下有没有更好的办法,其实很简单,就是使用 maven的 assembly插件,在pom.xml添加如下插件:
然后在命令行上输入:
mvn assembly:assembly
你会在${project}/target 文件夹下发现新生成的 {artifactId}-jar-with-dependencies.jar 这个文件
在上面的这个 命令执行的过程中,maven会将jar包所依赖的包导出,并且解压(unpackage),一并放在
这个{artifactId}-jar-with-dependencies.jar包中,这样对于程序的部署人员来说很方便,哪怕你的项目依赖了再多的第三方包,在部署的时候都会合并到一个assembly中。
但是问题又来了,在部署的过程中我们往往还是希望,将各个第三方包单独部署,比如ibatis归ibatis包,spring包归spring包,这样以后单独为某个第三方包升级也比较方便。
其实也有解决办法:
之前使用
这个jar-with-dependencies是assembly预先写好的一个,组装描述引用(assembly descriptor)我们来看一下这个定义这个组装描述(assemly descriptor)的xml文件
其实只要将上面这个xml文件中的
改成:
在main/assembly 下创建 src.xml文件,将刚才修改过的内用写入文件中,内容为:
将之前pom.xml 中的plugin改成如下:
再执行
mvn assembly:assembly
这样在target文件夹中就会看见新创建出来的{artifactId}-jar-with-dependencies.jar 这个jar包
里面会将项目所依赖的所有第三方包全部打包在里面,如下图:
分享到:
相关推荐
使用springmvc、hibernate、maven开发的web实例项目。
《Maven2使用项目开发规范说明》,图文并茂,详细介绍了使用 Maven2 开发一个规范项目的流程。 目录: 1. 环境配置 3 1.1. 配置Maven2 3 1.2. 配置Eclipse环境变量MIA_LIB 4 1.3. 安装Maven2 的eclipse plugin 4 2. ...
使用Maven构建多模块项目
idea使用maven创建web项目详细教程
Maven 开发mybatis项目demo,可用资源 请放心下载
maven项目开发的maven3.3.9使用包,可用于springboot项目
TCP开发通讯框架,maven项目格式,方便集成。亲测可以使用,不用从头编写tcp通讯代码,直接复用方便。
不习惯于maven项目开发,想使用eclipse的普通web项目。想借鉴别人的maven项目,但是自己使用的却不熟悉maven的原理等等,但是需要懂一点maven的目录架构。
首先看一下我的基本的开发环境: ...3.第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings.xml,第三个如果settings.xml中配置了localRepository,则会自动填入,若没有则会显示默认的本地
基于maven创建web项目 基础环境 Myeclipse2013 Tomcat8.0 Jdk1.8 apache-maven-3.3.9 环境配置
空白的,经过单元测试的,mavenWeb项目
Maven实践-使用Maven开发Web应用 Maven实践-使用Maven开发Web应用 Maven实践-使用Maven开发Web应用
今日,将原先在eclipse上开发的Maven项目导入idea中,启动报错,项目在eclipse中启动百分百是没有问题,误以为是IDEA打开项目的动作错误,在网上查了很多资料,各种操作五花八门,尝试了遍,结果还是不行。...
使用Maven构建JavaWeb项目实例
该项目主要为了方便大家搭建环境和新建环境所带来的时间上的消耗,另一方面拿了项目直接用,减少开发周期和减少需花费的精力。
maven web项目 Demo
Maven 构建 项目 文档 java MyEclipse导入Maven项目及注意的事项
本文面向具有eclipse相关开发经验的技术人员,一步步...5.1 第三方依赖 20 5.2 本地工程依赖 25 6. 遇到问题 31 6.1 新建工程的问题 31 6.2 编译工程的问题 34 6.3 解决Maven不断更新资源的问题 35 6.4 其它 37
使用maven创建web项目,独立管理jar包资源,方便简单高效
使用Idea14.1.4和maven创建java web项目