maven(总)

2023-11-17

maven

maven的简介

  • maven主要服务于基于java平台的项目构建,依赖管理和项目信息管理
    主要体现在项目和管理
    瀑布式开发:在做项目的时候要求有明确的需求,必须按照需求一步一步去做好规划,在项目的运行过程中严格的产出一些文档
    敏捷开发:首先将用户最关注的软件模型做出来(上线),再根据实际需要修改项目中的不足,然后再发布

maven四大特性:

  • 依赖管理系统
    可以用groupid,artifactid,version组成的Coordination(坐标),唯一标识一个依赖,比如:
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

任何基于maven构建的项目自身必须定义这三个属性,生成的 包可以是jar包,也可以是war包或者jar包

groupid:定义maven项目隶属的实际项目-公司名称
artifactid:该元素定义实际项目中的一个maven模块-项目名
version:该元素定义maven项目当前所处的版本

坐标属性的理解: maven坐标为各种组件引入了秩序,任何一个组件都必须明确的定义自己坐标。

  • 多模块构建
    将一个大的项目分成多个小的模块,使用标签来定义一组子模块。

  • 一致的项目结构
    maven统一了项目的目录结构,不管在eclipse还是在idea中 maven项目的目录结构是一样的

  • 一致的构建模型和插件机制

  • cmd下编译项目并运行
    在需要运行的项目根目录下打开cmd
    mvn compile(编译)
    显示build success 表示项目已经编译好了
    mvn exec:java -Dexec.mainClass=“xxx.Xxx”
    (这里mainClass需要写到包含main函数的类。例子当中,xxx是类的包名,Xxx类是main函数所在的类。)
    如果maven项目是第一次运行 可能运行时间比较慢

如果编译失败 可能出现的问题:

  • 不是使用管理员权限的dos命令
  • jdk环境配置问题,重装jdk
  • 代码编写时,类里面没有设置包名(如果编译时类里面没加包名,执行时也不需要加包名)

maven命令

maven的命令格式如下:
mvn [plugin-name]:[goal-name]
mvn 表示maven命令,后面表示插件的名字:后面跟命令的名字

mvn clean package -Dmaven.test.skip=true		 跳过单测打包
mvn clean install -Dmaven.test.skip=true		 跳过单测打包,并把打好的包上传到本地仓库
mvn clean deploy -Dmaven.test.skip=true			跳过单测打包,并把打好的包上传到远程仓库

mvn -v 或者mvn -version //查看版本信息 
mvn compile //编译源码 
mvn clean //清除项目临时产生的文件
mvn package //项目打包工具
mvn deploy //将打包的文件发布到远程参考,供其他人员下载。
mvn test-compile //编译测试代码 
mvn test //测试命令
mvn site //生成项目相关的网站 
mvn archetype:create //创建 Maven 项目 
mvn install //在本地 Repository 中安装 jar (将打包的jar包文件复制到你的本地库中,供其他模块使用)
mvn -Dmaven.test.skip=true //忽略测试文档编译 
mvn clean compile //将.java类编译为.class文件 
mvn clean package //进行打包 
mvn clean test //执行单元测试 
mvn clean install //使其他项目使用这个jar,会安装到maven本地仓库中 
mvn archetype:generate //创建项目架构 
mvn eclipse:eclipse//将项目转化成eclipse项目
mvn dependency:tree //打印出整个项目的依赖树
mvn dependency:list //查看已解析依赖 
mvn dependency:analyze //查看依赖的工具 
mvn help:system //从中央仓库下载文件至本地仓库 
mvn tomcat7:run//在tomcat容器中运行java项目
mvn jetty:run//调用jetty插件的run目标在jetty Select容器中启动web应用
mvn help:active-profiles //查看当前激活的profiles 
mvn help:all-profiles //查看所有profiles 
mvn help:effective -pom //查看完整的pom信息

在需要运行的项目根目录下打开cmd运行mvn命令

-D传入属性参数

例如:mvn clean package -Dmaven.test.skip=true,
以-D开头,将maven.test.skip的值设置为true,就是告诉maven打包的时候,跳过单元测试,同理,mvn clean deploy -Dmaven.test.skip=true表示部署项目的时候跳过单元测试

-P:

使用指定的Profile配置

maven仓库:

对于maven来说:maven分为本地仓库和远程仓库。
首先会查看本地仓库,如果本地仓库没有,则会去远程仓库查找。
远程仓库分为三种:中央仓库,私服,其他公共库
中央仓库是默认配置下,maven下载jar包的地方(下载比较慢)
私服:局域网内假设一个私有的仓库服务器,用其代理所有所有外部的远程仓库,内部的项目还能部署到私服上,供其他项目使用。公司内部应该使用私服,优点:

  • 节省自己的外网宽带
  • 加速maven构建
  • 部署第三方控件
  • 提高稳定性
  • 降低中央仓库的负荷

其他公共库:
常用阿里云仓库

maven的打包操作:

java项目产生jar包,web项目产生war包,
对于每个环境下的项目打包,对应的项目所需要的配置资源都会有所区别,可以通过ant 或者idea自带的打包功能实现打包,但是当项目很大,并且需要的外界配置很多的时候,此时的打包服务就会很复杂,对于maven项目而言,可以通过pom.xml配置的方式,来实现打包的环境选择,相比较其他形式的打包工具,通过maven只需要通过简单的配置,就可以轻松完成不同环境下项目的整体打包。

  • 第一步:建立相对应的目录结构
    在这里插入图片描述
  • 第二步
    配置好properties 文件,,,打开打开控制台 :
    在这里插入图片描述
  • 第三步 输入mvn命令
    在这里插入图片描述
    clean 清除 compile编译,package 打包 -p去找profile里的id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

maven(总) 的相关文章

  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • 构建/部署 EJB .jar 及其依赖项

    我是 Java EE 新手 我使用 Maven Eclipse 和 jBoss WildFly 我有一个war项目 当我构建项目时 它的所有依赖项都打包在war文件输入WEB INF lib 现在我正在尝试创建一个ejb项目 我有
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供

随机推荐

  • [Python从零到壹] 五十一.图像增强及运算篇之图像灰度直方图对比分析万字详解

    欢迎大家来到 Python从零到壹 在这里我将分享约200篇Python系列文章 带大家一起去学习和玩耍 看看Python这个有趣的世界 所有文章都将结合案例 代码和作者的经验讲解 真心想把自己近十年的编程经验分享给大家 希望对您有所帮助
  • 【开发环境搭建】3.Anaconda安装包和channels管理

    文章目录 1 conda 管理包 2 conda channel管理 2 1 指定安装包的channel 2 2 default中找不到合适包时的包安装方法 2 3 environment yml中指定pip安装的包 本文内容对linux系
  • 项目实战04_构建企业级maven私服

    注意 在一个互联网企业中 都是采用分模块的开发模式 每个团队维护自己的模块 是无法看到另外项目团队的模块代码的 需要实现业务的通讯就会使用到rpc远程调用技术 Maven私服作用 1 构建一个企业级Maven私服 缓存微服务团队中jar包
  • 乐高wedo搭建图纸_乐高课程 wedo2.0编程

    乐高wedo2 0编程套装 编号45300 乐高教育 WeDo 2 0 通过乐高模型和简单的程序编写 鼓励和激发 2 到 6 年级小学生对科学 工程以及相关课程的学习兴趣 WeDo 2 0强调孩子通过动手体验来树立信心 敢于发现 提出和思考
  • Java使用POI导出Word文档

    POI是Apache组织的一套关于文档操作的api 可以实现word文档和excel文档的读取和写出的功能 所需jar包点击下载 生成word文档 public class WordStudy Test public void test1
  • 已解决(MongoDB安装报错)Service ‘MongoDB Server (MongoDB)’ (MongoDB) failed tostart. Verify that you have su

    成功解决 MongoDB安装报错 Service MongoDB Server MongoDB MongoDB failed tostart Verify that you have sufficient privileges to sta
  • [命令技巧]alias

    转自 http www dutor net index php 2011 03 commands alias alias 假名 别名 bash的一个内建命令 用来给常用的较长的命令定义个简短的名称 alias命令的基本格式为alias wo
  • Tomcat环境搭建部署

    目录 Tomcat 环境搭建 Win10 Tomcat部署 Tomcat是常见的免费的web服务器 Tomcat 环境搭建 Win10 自己在搭建的过程中出现了一些问题 网上找了找解决方法 发现还是有一些问题 记录一下 Tomcat下载 h
  • overflow相关面试题

    overflow 是 CSS 属性 用于控制元素的溢出内容的处理方式 当元素中的内容超出其容器时 可以通过该属性进行控制 overflow 属性通常与容器元素 如 div 或 一起使用 overflow 属性可以取以下几个值 visible
  • osgEarth的Rex引擎原理分析(五十七)osgEarth中多个着色器的源代码的编译链接过程

    目标 五十四 中的问题129 osgEarth中多个着色器的源代码的编译链接过程 1 先一个一个编译 void Shader PerContextShader compileShader osg State state extensions
  • 在Ubuntu 20.04上成功安装 rtx 3060 notebook Nvidia cuda 和基本图形驱动

    cuda Toolkits中包含了对应的图形驱动 所以只需要安装CUDA 顺便就安装了基本的显卡驱动 最好在新笔记本上安装 经常会失败 重装Ubuntu也不怕丢失重要数据 为了保存用户数据 至少把硬盘分为3个区 1 swap 32GB 2
  • 阿里云发布首台云电脑“无影”,传统 PC 已“末路”?

    作者 硬核云顶宫来源 硬核编辑部 在9月17日的云栖大会上 阿里云智能总裁 达摩院院长发布阿里云第一台云电脑 无影 这是一台长在云上的 超级电脑 只需将一张名片夹大小的 C Key 上连接一块屏幕 就可以进入专属云电脑桌面 访问各种应用和文
  • 整数规划的分支定界法

    分支定界法 把全部可行解空间进行恰当地进行系统搜索 这就是分支定界法的基本内容 我们通常把全部可行解空间反复分割为越来越小的子集 这就称为分支 并对每个子集内的解集计算出一个目标下界 针对最小值问题 这称为定界 在每次分支后 凡是界限超过已
  • 轻轨服务器一般用什么系统,原来轨道交通集成平台的优势是因为这个啊......

    原标题 原来轨道交通集成平台的优势是因为这个啊 轨道交通的重要性就不多说了 火车 高铁 地铁都是大多数人的出行首选 也因此带来铁路交通管理的困难 仅靠人力是远远不够的 必须依靠现代安防科技 但是各个安防系统无法兼容 会造成后台管理的困难 飞
  • 【registries】registrie rest-service idea 无法引入

    1 概述 因为需要 我在外网mac环境尝试本地运行registry 经过一番折腾后 运行主类报错com hortonworks registries webservice RegistryApplication java lang Clas
  • 目标检测从零开始的学习之路--原理篇

    安装相关 Anaconda官网下载安装下一步进行到底 相关环境那儿记得打勾 不然就自己添加下环境变量就好 另 一般进官网就找Download 再找相关想下载的版本 适配系统之类的 这里下载的是Python 3 7 version for W
  • 设计模式:命令模式

    命令模式很好理解 举个例子 司令员下令让士兵去干件事情 从整个事情的角度来考虑 司令员的作用是 发出口令 口令经过传递 传到了士兵耳朵里 士兵去执行 这个过程好在 三者相互解耦 任何一方都不用去依赖其他人 只需要做好自己的事儿就行 司令员要
  • SSM家庭理财个人理财系统-JAVA【数据库设计、源码、开题报告】

    第一章 绪论 1 1 课题背景 目的及意义 从 20 世纪末以来 在全球经济日趋一体化的背景之下 中国经济也得到了飞速的发展 家庭收入也快速增长 居民的消费结构发生了巨大变化 购置房产 旅游 汽车消费 教育等成为居民消费重点 现代家庭越来越
  • 南京邮电大学算法分析与设计实验三(回溯法)

    文章目录 问题一 回溯法求解 8 皇后问题 一 题目 二 代码 三 实验结果 问题二 回溯法解决装载问题 一 题目 二 代码 三 实验结果 思考题 N皇后输出独立解 一 题目 二 代码 三 实验结果 问题一 回溯法求解 8 皇后问题 一 题
  • maven(总)

    maven maven的简介 maven主要服务于基于java平台的项目构建 依赖管理和项目信息管理 主要体现在项目和管理 瀑布式开发 在做项目的时候要求有明确的需求 必须按照需求一步一步去做好规划 在项目的运行过程中严格的产出一些文档 敏