maven(总)

news2024/9/27 23:23:56

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/984983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gdal求矢量图形的形心

gdal求矢量图形的形心 #include "gdal_priv.h" #include "ogrsf_frmts.h"int main() {OGRRegisterAll();OGRPolygon* square_1 new OGRPolygon();OGRLinearRing* ring_1 new OGRLinearRing();// 添加 square_1 的点ring_1->addPoint(0, 0);ring_1-&g…

js--15----闭包是什么?说说闭包的使用场景

1、闭包是什么&#xff1f; 一个函数和对其周围状态&#xff08;词法环境&#xff09;的引用绑定在一起&#xff08;或者说函数被引用包围&#xff09;&#xff0c;这样的组合就是是闭包&#xff08;closure&#xff09;&#xff0c;也就是说&#xff0c;闭包让你在一个内层函数…

win环境安装SuperMap iserver和配置许可

SuperMap iServer是我国北京超图公司研发的基于跨平台GIS内核的云GIS应用服务器产品&#xff0c;通过服务的方式&#xff0c;面向网络客户端提供与专业GIS桌面产品相同功能的GIS服务&#xff0c;能够管理、发布多源服务&#xff0c;包括REST服务、OGC服务等。 SuperMap iserve…

23062C++QT day2

封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个公有成员函数&#xff1a;void…

AI 时代的向量数据库、关系型数据库与 Serverless 技术丨TiDB Hackathon 2023 随想

TiDB Hackathon 2023 刚刚结束&#xff0c;我仔细地审阅了所有的项目。 在并未强调项目必须使用人工智能&#xff08;AI&#xff09;相关技术的情况下&#xff0c;引人注目的项目几乎一致地都使用了 AI 来构建自己的应用。 大规模语言模型&#xff08;LLM&#xff09;的问世使得…

监听Helm release资源

监听Helm release资源 基于helm做部署管理工具时&#xff0c;可能想要管理用户已有环境&#xff0c;这时需要将已有环境中的release信息上报到业务系统中。当用户在环境中部署新的release时&#xff0c;也需要实时监听并上报回来。下面将讲解如何去监听release资源 helm rele…

天津web前端培训班 前端是否适合零基础学?

随着HTML 5和ECMAScript 6的正式发布&#xff0c;大量的前端业务逻辑&#xff0c;极大地增加了前端的代码量&#xff0c;前端代码的模块化、按需加载和依赖管理势在必行&#xff0c;因此Web前端越来越被人们重视。 Web前端的就业前景 Web前端开发工程师薪资持续走高&#xff…

LoadRunner参数化详解

安装打开loadrunner时&#xff0c;发现虽然自己的思想还在&#xff0c;但已经非常生疏了&#xff0c;好多设置都找不到了具体的位置。下面说参数化参数化是性能测试中时最常用的一种技巧吧&#xff01;这里需要说明的是&#xff0c;不是只有loadrunner才可以设置参数化&#xf…

《热题100》字符串、双指针、贪心算法篇

思路&#xff1a;对于输入的的字符串&#xff0c;只有三种可能&#xff0c;ipv4,ipv6,和neither ipv4:四位&#xff0c;十进制&#xff0c;无前导0&#xff0c;小于256 ipv6:八位&#xff0c;十六进制&#xff0c;无多余0&#xff08;00情况不允许&#xff09;&#xff0c;不…

JAVA设计模式第十讲:SPI - 业务差异解决方案

JAVA设计模式第十讲&#xff1a;SPI - 业务差异解决方案 我们需要在不修改源代码的情况下&#xff0c;动态为程序提供一系列额外的特性。首先想到的是Spring的AOP技术来构建应用插件&#xff0c;但是在Java自带的插件中&#xff0c;就有完整的实现。SPI&#xff08;Service Pro…

OJ练习第165题——修车的最少时间

修车的最少时间 力扣链接&#xff1a;2594. 修车的最少时间 题目描述 给你一个整数数组 ranks &#xff0c;表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。 同时给你一个整数 cars &#xff0c;表示总…

pyspark 系统找不到指定的路径; \Java\jdk1.8.0_172\bin\java

使用用具PyCharm 2023.2.1 1&#xff1a;pyspark 系统找不到指定的路径&#xff0c; Java not found and JAVA_HOME environment variable is not set. Install Java and set JAVA_HOME to point to the Java installation directory. 解决方法&#xff1a;配置正确环境变量…

博物馆网上展厅有哪些用途,如何搭建数字时代的文化宝库

引言&#xff1a; 博物馆一直以来都是保存、展示和传承人类文化遗产的地方。然而&#xff0c;随着数字时代的来临&#xff0c;博物馆也逐渐迎来了创新的变革。博物馆网上展厅&#xff0c;作为一种新型的文化传播方式&#xff0c;正逐渐崭露头角。 一.什么是博物馆网上展厅&…

JAVA 比较两个区间是否存在交集

最近遇到一个开发问题&#xff0c;判断两个价格的大小&#xff0c;听着很简单&#xff0c;但其实价格是浮动的&#xff0c;也就是说价格是一个范围&#xff0c;比如物品A的价格是5&#xff5e;10&#xff0c;现在我们通过筛选条件&#xff0c;把价格符合在8&#xff5e;20之前的…

解锁无限的检索能力:谷歌的MEMORY-VQ以卓越的压缩力彻底改变了LLM

检索增强是一种常用且有效的方法&#xff0c;用于增强语言模型的事实知识&#xff0c;同时加快模型推理时间。尽管如此&#xff0c;这种方法带来了相当大的计算成本&#xff0c;这归因于存储预先计算的表示所需的大量存储需求。 为了解决这一相关问题&#xff0c;谷歌研究小组…

【漏洞复现】时空智友企业流程化管控系统文件上传

漏洞描述 通过时空智友该系统,可让企业实现流程的自动化、协同上提升、数据得洞察及决策得优化,来提高工作效率、管理水平及企业的竞争力。时空智友企业流程化 formservice接口处存有任意文件上传漏洞,未经认证得攻击者可利用此接口上传后门程序,可导致服务器失陷。 免责…

webrtc的FULL ICE和Lite ICE

1、ICE的模式 分为FULL ICE和Lite ICE&#xff1a; FULL ICE:是双方都要进行连通性检查&#xff0c;完成的走一遍流程。 Lite ICE: 在FULL ICE和Lite ICE互通时&#xff0c;只需要FULL ICE一方进行连通性检查&#xff0c; Lite一方只需回应response消息。这种模式对于部署在公网…

Qt应用开发(基础篇)——工具按钮类 QToolButton

一、前言 QToolButton类继承于QAbstractButton&#xff0c;该部件为命令或选项提供了一个快速访问按钮&#xff0c;通常用于QToolBar中。 按钮基类 QAbstractButton QToolButton是一个特殊的按钮&#xff0c;一般显示文本&#xff0c;只显示图标&#xff0c;结合toolBar使用。它…

《protobuf》入门

protobuf 初始protobuf简单上手编写protobuf编译 .proto 文件编写测试文件 testPB.cc 初始protobuf Protocol Buffers 是 Google 的一种语言无关、平台无关、可扩展的序列化结构数据的 方法&#xff0c;它可用于&#xff08;数据&#xff09; 通信协议、数据存储等。 Protocol …

蚂蚁集团正式开源万亿规模图学习系统AGL

9月7日下午&#xff0c;上海外滩大会“融合机器学习与运筹优化”论坛上&#xff0c;蚂蚁集团正式开源图学习系统Ant Graph Learning &#xff08;AGL&#xff09;&#xff0c;这是行业首个通用的工业图学习系统。 图片说明&#xff1a;论坛上&#xff0c;蚂蚁集团正式开源了图学…