开发完项目后,idea+maven环境打包成.jar包,才能发布项目。下面记录常用的几种打包方式。

一,通过mvn命令打包

比较专业的用法是通过mvn命令打包:

mvn   clean   package   -pl   这里是项目名称   -am

  技巧:进到你的项目文件夹,在空白处按住 “Shift+右键” ,选择“在此处打开命令窗口”,然后按格式输入命令,回车,等待带包完成(注意看有没有异常输出)。示例如下:

打包成功后会在项目文件夹下有个 target文件夹,里面就是打包结果。其中.jar就是可发布的程序包了。本文下面有说明。

二,在Idea界面操作打包

  在idea上打开已经开发好待发布的项目,在侧边栏(默认在右边栏)找到Maven窗口,找到要发布的项目,点击项目名称左边的三角,展开找到Lifecycle,展开找到package,右键“Run Maven Build”或者“Run 项目名称”按钮就可以了。然后等着底部的控制台输出打包过程日志,打包完成会显示.jar包所在位置。

个人觉得直接在界面操作常用些。

target文件夹说明:

  打包成功后,在项目文件夹下回自动生成target文件夹。如下图:

我的理解是这样,这里面包含了打包的最终结果.jar包,也包含.jar.original包。网上说他俩的区别是这样:

.jar.original 是普通jar包,不包含依赖
.jar 是可执行jar包,包含了pom中的所有依赖,可以直接用java -jar 命令执行
如果是部署,就用.jar
如果是给别的项目用,就要给.jar.original这个包

还有classes文件夹先面存放java源代码编译后的.classes文件,静态资源文件,以及模板,还有项目配置文件。

maven-archiver文件加下指存放pom.properties文件,用来标识项目版本和项目ID信息,一般不管它。

generated-sources文件夹下存放额外生成的注解信息,一般为空,不管它。

maven-status文件夹暂时还不知道什么用,看样子也用不着它。

发布.jar注意事项:

  如果你在项目下创建了多个项目配置文件,例如 application.properties(默认),application-release.properties那么在发布.jar的时候需要通过 spring.profiles.active= 指定用哪个配置文件,否则使用默认配置文件。

示例:

spring.profiles.active=dev
spring.profiles.active=release

【完】

idea+maven打包.jar发布项目的更多相关文章

  1. Maven打包jar项目

    默认情况下,使用maven打包的jar项目(执行maven install)不会包含其他包引用,要想打包为带其他项目引用的jar,需要加入插件 要得到一个可以直接在命令行通过java命令运行的JAR文 ...

  2. 部署项目问题(maven打包jar不对应,导致启动时一直找不到某个类)

    项目是springboot+maven  打包用maven的插件package 下面是打包后的目录结构  project-1.0 和project-1.0.tar.gz是一样的  区别就是一个是压缩包 ...

  3. Maven打包Jar

    现状 该项目使用了Maven,并且引入了Spring,包含代码.配置文件.Jar包,使用的是IDEA来作为开发工具,项目的产出物是要打包成一个可运行的Jar包.通过IDEA的打包工具也可以打包成功,只 ...

  4. Maven打包时去掉项目版本号

    Maven打包后,jar或war文件名里带有版本号信息,如projectname0.0.1-SNAPSHOT.jar等,怎么去掉呢? 解决办法: 打开项目pom.xml文件,在<build> ...

  5. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用

    Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...

  6. idea使用maven打包jar包

    1.在pom.xml中加入以下内容: <?xml version="1.0" encoding="UTF-8"?> <project xmln ...

  7. 简单使用shell 自动打包,发布项目 脚本

    (1)打包,发布脚本 deploy.sh packagepath=/home/admin/testProject/project application=testProject mkdir -p $p ...

  8. maven 打包jar && lib

    一.springboot 打包成jar 1.pom.xml <build> <!-- jar的名称--> <finalName>shiro</finalNam ...

  9. MAVEN 打包JAR

    <build> <finalName>edu-service-user</finalName> <resources> <resource> ...

  10. angular2 安装 打包成发布项目过程

    安装之前要有typings和typescript全局已经安装好 安装命令新版为npm install -g @angular/cli 原来的angular-cli为老版的,我安装失败了 安装之后新建一 ...

随机推荐

  1. 3.9 Linux查看目录中的文件(ls命令)

    通过学习cd 和 pwd 命令,相信读者已经能够在庞大的 Linux 文件系统中,随心所欲地游荡并确定自己所在的位置了.本节继续来学习,如何知道某目录中存放了哪些文件或子目录. ls 命令,list ...

  2. c++设计模式:设计原则

    c++设计八大原则(降低改变带来的代码修改) 一.依赖倒置原则(DIP) 1.高层模块(稳定)不应该依赖于低层模块(变化),二者应该依赖于抽象(更稳定) <高层模块 包括 低层模块所依赖的抽象, ...

  3. Visual Studio Release版本开启debug窗口进行调试输出。

    "项目 -> 属性 -> 生成事件 ->后期生成事件 -> 命令行" 中添加: editbin /SUBSYSTEM:CONSOLE $(OutDir)\$ ...

  4. (Python基础教程之七)Python字符串操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  5. Python基础:Python可变对象和不可变对象

    Python在heap中分配的对象分成两类:可变对象和不可变对象.所谓可变对象是指,对象的内容是可变的,例如list.而不可变的对象则相反,表示其内容不可变. 不可变对象:int,string,flo ...

  6. PHP之常见问题

    汇总在PHP开发中遇到的一些问题 1.post提交参数缺失 场景: 在前端页面发起一个post提交的时候,查看payload中的数据是正常的, 但是在接收的时候,发现只有部分数据,算了一下,包含的数据 ...

  7. MySQL底层概述—1.InnoDB内存结构

    大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.I ...

  8. Vue.js vuex

    1.前言 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,它解决了vue中不同组件之间状态共享的问题. 通俗的说,它就是一个带响应式的全局变量管理,它数据的改变会触发相关页面/组件的更 ...

  9. 如何TypeScript中相对优雅地实现类的多继承

    首先,在 js 中还没有真正的多继承.但是在实际工作中经常需要抽离通用模块并按需组成新的业务模块,这就对类的多继承有了实际需求. 举个例子,现在我们有个基础类 Animal : class Anima ...

  10. node 使用 pm2-logrotate 分割pm2日志 && 停止 pm2-logroatate

    使用pm2-logrotate 解决pm2日志体积过大,进行分割 什么是pm2-logrotate? pm2-logrotate 是一个pm2的插件,可以对pm2日志进行管理,所以它的运行需要依靠pm ...