如果你的项目使用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包
里面会将项目所依赖的所有第三方包全部打包在里面,如下图:
分享到:
相关推荐
Maven还提供了大量的插件和依赖管理功能,使得开发者可以方便地引用第三方库。在本项目中,Maven负责协调Spring MVC、Hibernate以及其它可能的依赖库,确保它们在正确版本下协同工作。 **项目结构** 在"springmvc_...
总结,Maven 3.3.9 是一个强大且稳定的项目管理工具,尤其在SpringBoot这样的现代Java框架中,能够显著提高开发效率和项目的可维护性。通过熟练掌握Maven的使用,开发者可以更加专注于业务逻辑的实现,而不是项目的...
maven是一种基于项目对象模型(Project Object Model,POM)的项目管理工具,由Apache软件基金会开发和维护。maven提供了一种标准化的方式来构建、打包和部署项目,它可以帮助开发者简化项目的构建、测试和部署过程...
【使用Maven开发Java Web应用】的详细指南 在Java Web开发中,管理各种框架的jar包及其依赖是一项挑战。...在实际开发中,理解并熟练掌握Maven的使用,能够帮助开发者更好地构建和维护复杂的Java Web应用。
然而,对于习惯于使用Eclipse IDE开发Web项目的开发者来说,Maven项目可能会显得较为复杂。本文将详细介绍如何将一个Maven项目转换为Eclipse中的Web项目,并解释Maven的基本目录架构。 首先,让我们了解Maven项目的...
如何使用Maven开发Java项目
在开发Java Web应用程序时,Maven和MyBatis是两个非常...通过合理的配置和使用,我们可以高效地开发、测试和部署MyBatis项目。在实际应用中,还需要注意版本兼容性,以及遵循最佳实践,确保代码的可维护性和扩展性。
通过在项目中引入Maven,开发者可以方便地将此TCP通讯框架与其他Java项目进行集成,只需在项目的pom.xml文件中添加依赖即可。 Maven项目的基本结构通常包括以下几个部分: 1. pom.xml:这是Maven项目的配置文件,...
- **Eclipse的Maven插件使用**:Eclipse通过集成Maven插件,可以更方便地管理Maven项目。插件可以帮助开发者创建、构建和管理Maven项目,提高开发效率。 - **Maven项目结构**:Maven项目通常遵循一定的目录结构,...
在IT行业中,构建大型分布式应用时,我们常常会利用Maven项目框架和Dubbo服务治理框架,结合Idea这样的高效集成开发环境...通过熟练掌握Maven、Dubbo和Idea的使用,开发者可以更高效地开发、维护和扩展复杂的软件系统。
2. **依赖管理**:Maven通过中央仓库自动下载并管理项目所需的第三方库。 3. **生命周期**:Maven有三个主要的生命周期阶段:compile(编译)、test(测试)、package(打包),可以使用命令行工具如`mvn compile`...
使用Maven,开发者可以很容易地下载所需的库,编译源代码,运行测试,打包,部署等,大大简化了项目的构建过程。 SSH框架组合中,Struts2是用于处理用户请求和控制应用程序流程的MVC(Model-View-Controller)框架...
首先看一下我的基本的开发环境: ...3.第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings.xml,第三个如果settings.xml中配置了localRepository,则会自动填入,若没有则会显示默认的本地
通过学习和实践【maven web项目 Demo】,开发者能够掌握Maven的使用,从而更有效地管理Web项目,提升开发效率。同时,这也会为理解和应用其他Java Web框架,如Spring、Struts、Hibernate等奠定基础。
Maven是一个强大的项目管理和构建工具,它简化了Java项目的构建过程,通过标准化构建生命周期和依赖管理,使得开发者可以更专注于代码本身。在"Maven构建项目工程"中,我们可以深入了解Maven如何帮助我们快速、简便...
通过以上步骤,我们成功地使用IntelliJ IDEA 14.1.4和Maven创建了一个基本的Java Web项目。这个过程不仅让我们了解了IDEA和Maven的基本用法,也为今后的开发打下了坚实的基础。在实际开发过程中,还可以根据具体需求...
SpringBoot项目使用maven配置文件是Java后端开发中的常见实践,它可以帮助开发者高效地管理依赖、构建项目以及执行自动化任务。Maven是Apache软件基金会的一个项目,它提供了一个项目对象模型(Project Object Model...
Maven是Java开发中的一个重要工具,而Idea作为IDE,提供了与Maven紧密集成的功能,使得开发者能更好地管理和构建项目。了解并熟练掌握这两者之间的协作,对于提升Java Web开发者的专业能力至关重要。
使用Maven构建JavaWeb项目的第一步是创建一个新的Maven项目。这可以通过执行`mvn archetype:create`命令,选择一个适合的archetype,例如`maven-archetype-webapp`,来生成基础的项目结构。 三、Maven的POM.xml POM...