关于Maven的 install 和 打包

关于安装

进入pom.xml文件目录下,使用命令mvn install

当然也可以使用类似idea这类本身已经集成好maven插件按钮的编辑器进行安装

安装过程会输出安装jar包的目录信息,同样的,跟class编译后的目标文件一起,放在target目录下

注意:开发编译过程中,如果只 编译 mvn compile,修改的代码是不会生效的,必须重新执行install生成新的包。再执行jetty run(Windows下使用jetty作为服务器)过程自然会解析jar包

[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ thomson-content-rpc-api ---
[INFO] Building jar: E:\JavaDevelop\thomson-content\thomson-content-rpc-api\target\thomson-content-rpc-api.jar

在maven里面,install是安装的意思,也就是说将代码安装到本地仓库中,成为可运行的包。

通常一个成熟的项目,所依赖的外部类比较多,因此在第一次install代码的时候,会花费较长的时间。例如某个项目,我的本地仓库就达到了1.2G。

如何创建自己的本地仓库?

修改maven安装目录下的/conf/settings.xml文件

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">

  E:/MavenRepository

修改完后,执行 mvn help:system,会自动下载基础的工程到本地仓库

通常情况下,类似idea编辑器会把仓库设定在c盘,我们可以自行修改自己想要存放的目录

File -> Settings,勾选以下选项框即可修改目录。

再执行mvn命令时,新生成class文件和jar包会放置在本地仓库中

关于Maven的 install 和 打包

关于打包

很方便,可以根据需要设置权限(按Linux的权限定义),最终生成的压缩包会放在target目录下

pom.xml中添加插件,指定assembly.xml文件

<plugin>
    <artifactId>maven-assembly-pluginartifactId>
    <configuration>
        <descriptor>src/main/assembly/assembly.xmldescriptor>
    configuration>
    <executions>
        <execution>
            <id>make-assemblyid>
            <phase>packagephase>
            <goals>
                <goal>singlegoal>
            goals>
        execution>
    executions>
plugin>

配置包后缀和设置权限

需要在src目录下创建assembly目录,目录下创建assemly.xml文件,和bin目录来放置一些执行脚本

assembly.xml
<
assembly> <id>assemblyid> <formats>
    
<format>tar.gzformat> formats> <includeBaseDirectory>trueincludeBaseDirectory> <fileSets> <fileSet> <directory>src/main/assembly/bindirectory> <outputDirectory>binoutputDirectory>
        <fileMode>0755fileMode> fileSet> <fileSet> <directory>src/main/assembly/confdirectory> <outputDirectory>confoutputDirectory> <fileMode>0644fileMode> fileSet> fileSets> <dependencySets> <dependencySet> <outputDirectory>liboutputDirectory> <scope>runtimescope> dependencySet> dependencySets> assembly>

Original: https://www.cnblogs.com/thomson-fred/p/16609550.html
Author: 2015夏
Title: 关于Maven的 install 和 打包

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610432/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring常用注解(SpirngBoot方面讲的更加详细)

    使用注解须知: 基本方向 1. bean @Component 2. 属性如何注入 @Component public class User{ public String name…

    Java 2023年6月14日
    081
  • Java中的反射机制

    1.聊聊Java中的反射机制 (1)先说说静态编译和动态编译: ①静态编译就是在编译的时候把你所有的模块都编译进exe里去,当你启动这个exe的时候所有模块都加载进来了。你写小程序…

    Java 2023年6月9日
    070
  • SqlServer对表的基本操作

    SqlServer对表的基本操作 手动建库建表 脚本建库建表 SQL Server关系数据库的数据表结构主要是由记录(行)和字段(列)构成,每一行代表唯一的一条记录(Record)…

    Java 2023年6月15日
    064
  • Spring AOP 切点切面

    Spring AOP 切点切面 https://www.jianshu.com/p/94879042db88 https://www.jianshu.com/p/994027425…

    Java 2023年5月30日
    070
  • SpringCloud+Alibaba微服务教程,Java自学/进阶程序员必看

    正文 Spring Cloud是目前市面上最火爆的Java微服务技术栈,因其功能丰富涉及微服务管理全面,并且在高可靠、高可阔以及在应对复杂业务和承受并发的能力上发挥出色,使其受到众…

    Java 2023年6月9日
    078
  • SpringBoot 前后端分离 实现验证码操作

    验证码的功能是防止非法用户恶意去访问登录接口而设置的一个功能,今天我们就来看看在前后端分离的项目中,SpringBoot 是如何提供服务的。 本文基于的 Spring Boot 的…

    Java 2023年6月8日
    067
  • 每日一考-9.15

    wait和sleep的区别 简说:wait释放🔒,sleep不释放🔒 例子:买票过程中,当程序进行上锁后 sleep控制下的线程,买票是一一完成,当程序休眠后,sleep不会释放🔒…

    Java 2023年6月16日
    061
  • 高可用架构(下)

    上次说到了理论,接口层面,数据库层面如何实现高可用,但是,这远远是不够得。为了面对更大的灾害,如:洪水,地震等,还要在机房层面做出高可用。当然,也不仅仅是为了面对自然灾害,也可以是…

    Java 2023年6月15日
    070
  • JAXB 使用记录

    参考资料 什么是 JAXB ? 开源中国: JAXB(Java Architecture for XML Binding简称JAXB)允许Java开发人员将Java类映射为XML表…

    Java 2023年6月9日
    076
  • 第一次网页制作

    以下是打开文件使用的模式的列表 – 编号模式描述 1 打开的文件为只读模式。文件指针位于文件的开头,这是默认模式。 2 打开仅用二进制格式读取的文件。文件指针位于文件的…

    Java 2023年6月6日
    046
  • go使用barcode库生成二维码并扫描其内容

    导入barcode包 使用barcode库生成二维码 这里复习一下defer关键字的主要用法:延迟执行,主要是关闭流时用到,在return之前执行,当有多个defer关键字时采用先…

    Java 2023年6月13日
    074
  • 哈工大软件构造课程笔记

    软件构造总结笔记 本笔记依据考试大纲,调整课堂讲义的分点,以知识点分化作为条理,精简原本人课堂笔记,进行总结 何以牵尘 – 博客园 (cnblogs.com)https…

    Java 2023年6月9日
    067
  • gdb–多线程

    改配置, 设为只有一个work线程. 查看所有线程的bt状态(每个线程运行到何处了) thread apply all bt 根据1中的信息, 找到work线程, attach上去…

    Java 2023年5月29日
    072
  • Fizz企业级微服务API网关进阶系列教程-服务编排处理列表数据(上)-展开与合并

    ​ 概述 服务编排是Fizz网关提供的一个强大的功能,能够基于现有的业务微服务通过在线配置的方式快速的生成一个聚合接口,减少中间层胶水代码以及降低编码投入。在服务编排中支持使用函数…

    Java 2023年6月9日
    081
  • Spring-AOP学习笔记

    Spring 是轻量级的开源的 JavaEE 框架。 Spring有两个核心部分IOC 和 Aop IOC(Inversion of Control):控制反转,把创建对象过程交给…

    Java 2023年6月8日
    070
  • rabbitmq的基础使用

    一: 1.作用 异步:提高相应速度与吞吐量 解耦 削峰:以稳定的系统资源应对突发的流量冲击 2.缺点 系统可用性降低 系统的复杂性提高 消息一致性问题 3.rabbitmq 消息可…

    Java 2023年5月30日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球