您的位置:首页 > 其它

Maven实战(五)使用maven开发的项目,如何更方便地提取第三方包

2013-07-18 14:30 519 查看
如果你的项目使用maven构建的话,当项目要上线,部署到服务器上去的时候或许会碰见这样的问题。问题就是,服务器上没有maven的环境,也就是说,项目所依赖到的那些仓库(repository)中的jar包你需要单独提取出来上传到服务器中去,解决办法:

前期:在eclipse里安装完成Maven (具体参与前 Maven实战 ),并项目为’Maven webapp项目‘类型,以spring-petclinic 为例

办法1:mvn package

pom.xml :<packaging>是war的话, mvn package 的命令将项目依赖的jar包打到web-inf 下的lib文件夹,如图:



,完成后console会提示war包的位置信息

办法2:mvn assembly:assembly

在${project}/target 文件夹下发现新生成的 {artifactId}-jar-with-dependencies.jar 这个文件,命令执行的过程中,maven会将jar包所依赖的包导出,并且解压(unpackage),一并放在这个{artifactId}-jar-with-dependencies.jar包



注:pom.xml :

<descriptorRefs>

<descriptorRef>jar-with-dependencies</descriptorRef>

</descriptorRefs>

这个jar-with-dependencies是assembly预先写好的一个,组装描述引用(assembly descriptor)

办法3:按第三方包单独部署

a:修改pom.xml <descriptorRef>jar-with-dependencies</descriptorRef>路径,修改为:<descriptorRef>src/main/assembly/src.xml</descriptorRef>

b:于项目名称/src/main/assembly 下创建 src.xml文件:

<assembly

xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>jar-with-dependencies</id>

<formats>

<format>jar</format>

</formats>

<includeBaseDirectory>false</includeBaseDirectory>

<dependencySets>

<dependencySet>

<unpack>false</unpack>

<scope>runtime</scope>

</dependencySet>

</dependencySets>

<fileSets>

<fileSet>

<directory>${project.build.outputDirectory}</directory>

</fileSet>

</fileSets>

</assembly>

c:再执行mvn assembly:assembly

这样在target文件夹中就会看见新创建出来的{artifactId}-jar-with-dependencies.jar 这个jar包

里面会将项目所依赖的所有第三方包按类型打包在里面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: