资讯专栏INFORMATION COLUMN

通过Maven配置生成个人项目Jar包(或者+依赖包)

Donald / 1181人阅读

摘要:是否生成和项目名相同的根目录,默认是,打成的包中会生成一个以项目名称为根的文件夹。设置配置文件是否打进最终的包。设置依赖包存放的路径。和分别代表要将哪些包引入将哪些包去除。

使用场景:

在工作中使用maven管理项目时,需要将部分依赖包与开发的项目一起整合到一个jar文件中运行,其余的jar包放入axis2的lib文件夹下提供支持。maven-dependency-plugin和maven-jar-plugin不能满足需求,则需要用到maven assembly plugin这个强大的插件来分别生成。

使用说明:

在maven项目的pom文件的build节点添加如下依赖:


    maven-assembly-plugin
    3.1.0
    
        
        smsServerMvn_V6.0.1_20171018
        false
        
            
            src/main/assembly/assembly.xml
            
            src/main/assembly/generatorLib.xml
        
    
    
        
            make-jar
            package
            
                single

            
        
    

创建src/main/assembly文件夹,此时项目结构如图:

在assembly.xml文件中添加如下配置:


    assembly-description
    
        jar
    
    
    false

    
        
            ${project.basedir}	argetclassescom
            com
        

        
            src/main/resources/META-INF
            META-INF
        
    

    
        
            
            true
            
            /
            
            
                com.oracle:ojdbc6
                org.apache.mina:mina-core
                com.dareway.basic:basic-core
            
        
    

format:压缩格式,有zip、tar、tar-gz、jar、war等。

includeBaseDirectory:是否生成和项目名相同的根目录,默认是true,打成的jar包中会生成一个以项目名称为根的文件夹。

fileSets:设置配置文件是否打进最终的jar包。常用的选项有文件原路径directory和输出路径outputDirectory

dependencySets:设置依赖的jar包。unpack设置jar包是以.jar方式存进去还是以classes文件的形式存进去(与fatjar工具类似),默认为false。outputDirectory设置依赖jar包存放的路径。includes和excludes分别代表要将哪些jar包引入、将哪些jar包去除。如果没有写这两个选项,默认是将pom文件中所有的依赖生成到最终的jar文件中。可选项:scope等。

第二个assembly配置文件:(目的是将生成的jar放入外部的lib中)


    assembly-lib
    
        zip
    
    
    
        
            
            lib
            
            
                com.oracle:ojdbc6
                org.apache.mina:mina-core
                com.dareway.basic:basic-core
            
        
    

执行mvn命令:clean package

最终在target目录下生成了所需的jar包。

官方文档有更详细的说明:链接描述

http://maven.apache.org/compo...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67800.html

相关文章

  • Maven 实战

    摘要:的主要思想是约定优于配置。强烈建议遵循以上规范,避免不必要的麻烦。依赖传递依赖范围除了控制,还会对依赖传递产生影响。此外还提供了和来进一步管理依赖,分别称为可选依赖和排除依赖。 showImg(https://segmentfault.com/img/remote/1460000012363876?w=1240&h=698); Maven 是跨平台的项目管理工具,主要服务于基于Java...

    twohappy 评论0 收藏0
  • Spring入门系列(一):使用IDEA创建第一个Spring Boot的Hello World项目

    摘要:进行到这里,很多小伙伴可能心里迫切的想着赶紧启动项目。该类的代码如下步骤重新启动该项目之前启动项目的图标已经变为重启项目的图标,在浏览器中输入,如图所示页面展示出字样至此,使用创建第一个的项目已经成功 前言 Spring因其轻量级、一站式、非侵入式设计、方便集成和测试等优势,成为最受欢迎的Java EE框架之一。但Spring的配置繁琐臃肿,很多工作麻烦而重复,于是Spring Boo...

    Euphoria 评论0 收藏0
  • [转载]使用IntelliJ IDEA开发SpringMVC网站(一)开发环境

    摘要:最近在做某在线教育平台网站的开发,按师兄的建议要用来搞。现在把开发过程中的一些相关经验贴出来。事先声明,请确保和都已经安装好。对于不使用的开发者,可以直接建一个简单的项目。使用的话,请按照图进行操作。 访问GitHub下载最新源码:https://github.com/gaussic/Sp... 文章已针对IDEA 2016做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码...

    Ali_ 评论0 收藏0
  • Maven就是这么简单

    摘要:软件项目的管理就会变得简单很多。比如说的驱动程序,,在是获取不到的,就需要手工上传到里是仓库组,在里没有这个概念,是特有的。 什么是Maven Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中.. Maven是一款跨平台的项目...

    leonardofed 评论0 收藏0
  • Maven学习笔记

    摘要:学习笔记先生,您在写代码吗不,我们正在完成一项伟大的工程。于是打算重新学习一下。中央仓库镜像为了分担中央仓库的流量,提升用户的访问速度。生成项目报告,站点,发布站点。修改源码后也需要逐个手动进行操作。 maven学习笔记 先生,您在写代码吗? 不,我们正在完成一项伟大的工程。 前言 在刚学maven时,我就把maven当作一个引入jar包的工具而已,以前是自己下载jar包,现在是只用...

    tomlingtm 评论0 收藏0

发表评论

0条评论

Donald

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<