maven的使用

2023-11-18

目录

 

一、maven基本参数 

二、maven基础结构 

三、mvn的打包和运行


一、maven基本参数 

groupId:是指项目里面的标识,一般写法是com.mycom.myapp 其中mycom是指你公司的域名,例如com.google.myapp, 通常,具体指对应的java的包结构(就是src/main/java下的包名路径)

artifactId:是指项目的标识,大白话就是你的项目名。比如sms、sms-biz、sms-web、sms-parent

    <modelVersion>4.0.0</modelVersion>
	<groupId>com.xzb.sms</groupId>
	<artifactId>sms-parent</artifactId>
	<version>1.0</version>
	<name>sms-parent</name>
	<packaging>pom</packaging>

maven默认的项目主代码目录放在: src/main/java

maven默认的测试代码目录放在: src/test/java

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
</dependency>												

maven中scope属性的

junit只在测试下 有效,如果在主代码中使用,会报编译错误

二、maven基础结构 

构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。

src/main/java和src/test/java 

这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会被忽略掉。

src/main/resouces和src/test/resources

这两个目录中的文件也会分别被复制到target/classes和target/test-classes目录中。

target/classes

打包插件默认会把这个目录中的所有内容打入到jar包或者war包中。

 profile (账户)

 

三、mvn的打包和运行

1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用。

将项目进行编译,测试之后,下一个重要步骤就是打包。pom.xml中如果没有指定打包类型,默认打包类型为:jar。我们可以简单地执行命令打包: mvn clean pachage。

类似地,maven会在打包之前执行编译,测试等操作。如以打jar包为例,jar:jar任务负责打包,实际上就是jar插件的jar目标将项目主代码打包成一个名为xxxxxx-1.0-SNAPSHOT.jar的文件。该文件也位于target/输出目录中,它是根据artifact-version.jar的规则进行命名的,如有需要,还可以使用finalName来自定义该文件的名称,这里暂且不展开,后面会详细解释。

在打包之后,又执行了安装任务install:install。从输出可以看到任务将项目输出的jar安装到了maven本地仓库中,可以打开相应的文件夹看到项目的pom和jar。之前我们说只有构件被下载到本地仓库后,才能由所有Maven项目使用,这里同样的道理,只有将自己编写的项目安装到本地仓库之后,其他maven项目才能使用它。

我们已经体验了maven最主要的命令:mvn clean compile,mvn clean test,mvn clean package,mvn clean install执行test之前是会先执行compile的,执行package之前是会先执行test的,而类似地,install之前会执行package。可以在任何一个maven项目中执行这些命令。

compile-test-package-install

// install的log,install放到了 本地仓库中,供其他mvn模块调用
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ test ---
[INFO] Installing D:\workspace\YHLT\test\target\test-0.0.1-SNAPSHOT.jar to C:\Users\like\.m2\repository\com\hbj\test\test\0.0.1-SNAPSHOT\test-0.0.1-SNAPSHOT.jar
[INFO] Installing D:\workspace\YHLT\test\pom.xml to C:\Users\like\.m2\repository\com\hbj\test\test\0.0.1-SNAPSHOT\test-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
 // 正式打包命令:bat文件;清空再打包,跳过test过程 使用正式环境(production)打包

@echo -----------------------------------------------------------------------------
@echo 生产环境打包
@echo -----------------------------------------------------------------------------
mvn clean package -Dmaven.test.skip=true -Pproduction
@pause 

我们  要在命令行输入如mvn clean install之类的命令来执行maven构建,m2eclipse中也有对应的功能,在Maven项目或者pom.xml上右击,再选择Run As,就能看到如下的常见Maven命令,如图所示:

选择想要执行的Maven命令就能执行相应的构建,同时我们也能在Eclipse的console中看到构建输出。这里常见的一个问题是,默认选项中没有我们想要执行的Maven命令怎么办?比如,默认带有mvn test,但我们想执行mvn clean test,很简单,选择Maven buid… 以自定义Maven运行命令,在弹出对话框中的Goals一项中输入我们想要执行的命令,如clean test,设置一下Name,点击Run即可。并且,下一次我们选择Maven build

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

maven的使用 的相关文章

随机推荐

  • 生信技能树R语言学习

    一 数据类型和向量 1 数据类型 1 1 判断数据类型class 1 2 按Tab键自动补全 1 3 数据类型的判断和转换 1 is 族函数 判断 返回值为TRUE或FALSE is numeric 123 is character a i
  • 32位/64位WINDOWS驱动之-突破进程保护映射的方法进行跨进程读内存2

    32位 64位WINDOWS驱动之 突破进程保护映射的方法进行跨进程读内存2 一 在过保护读写筛选器中添加 读写驱动2 c 驱动层 代码如下 include
  • 黑马头条 热点文章实时计算、kafkaStream

    热点文章 实时计算 1 今日内容 1 1 定时计算与实时计算 1 2 今日内容 kafkaStream 什么是流式计算 kafkaStream概述 kafkaStream入门案例 Springboot集成kafkaStream 实时计算 用
  • cout 格式化输出

    将 cout 的 flag 保存到变量 以便修改后的恢复 ostream fmtflags old cout flag 无参将返回当前 flag 值 cout flag old 恢复到原先保存的值 将 bool 值以 literals 输出
  • 第六章课后习题及答案

    第六章习题答案 转载于 https www cnblogs com hhdn archive 2007 05 27 761356 html
  • Mysql字段设置默认值

    方法一 select 默认值 字段名 from 表名 方法二 SELECT 默认值 as 字段名 FROM 表名 以上方法 将默认值和表名互换 则可以产生给表名去别名的作用
  • 计算分组后的记录行数(count group)

    小弟有这样一个问题 想用hql计算分组之后的总记录行数 语句如 from aTable a left outer join bTable b group by a f1 b f1 现在要计算它的总记录数 select count from
  • 对useReducer的理解

    useReducer是React提供的一个高级Hook 它不像useEffect useState useRef等必须hook一样 没有它我们也可以正常完成需求的开发 但useReducer可以使我们的代码具有更好的可读性 可维护性 可预测
  • Android通用流行框架大全,零基础入门学习android

    Picasso transformations 一个为Picasso提供多种图片变换的库 Glide transformations 一个为Glide提供多种图片变换的库 Android gpuimage 基于OpenGL的Android过
  • Jenkins持续集成项目实践 —— 基于Python Selenium自动化测试(二)

    上一篇讲了如何搭建jenkins 这篇主要讲 怎么将自动化代码与jenkins衔接起来 jenkins上运行的两种方式 第一种 在jenkins上面运行本地代码 操作如下 新建项目 项目名称根据自己项目情况填写并选择自由模式 进行配置根据如
  • LaTeX中插入matlab代码(可添加中文注释)的几种方法

    最近在用LaTeX写文件时 需要插入matlab代码 但是matlab代码编写时没有注意到注释为中文所带来的不便 导致在编写LaTeX文件时总是报错 经查阅网上有关这方面的资料和自己不断地尝试之后 总结其中的方法如下 使用matlab的mc
  • 【满分】【华为OD机试真题2023 JS】字母组合

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 字母组合 知识点回溯 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 每个数字对应多个字母 对应关系如下 0 a b c 1 d e f 2 g h i 3 j
  • Android MVP 详解(上)

    作者 李旺成 时间 2016年4月3日 Android MVP 详解 下 已经发布 欢迎大家提建议 MVP 在 Android 上的使用其实已经有挺长一段时间了 长到似乎有点 过时 了 目前风头正劲的是MVVM 那为什么现在还要讲 MVP
  • tf.nn.atrous_conv2d如何实现空洞卷积?

    转载自 https blog csdn net mao xiao feng article details 78003730 介绍 关于空洞卷积的理论可以查看以下链接 这里我们不详细讲理论 1 Long J Shelhamer E Darr
  • 业务实战中如何利用MySQL函数来解决

    随着我们业务越来越复杂的情况下 完全基于java后台来解决首先是很麻烦 而且性能带来降低 代码的可读性下降 这个时候就需要一些MySQL的函数来解决了 这篇文章对于常见的MySQL函数不予介绍 concat函数 使用方法 CONCAT st
  • Flink设置Source数据源使用kafka获取数据

    流处理说明 有边界的流bounded stream 批数据 无边界的流unbounded stream 真正的流数据 Source 基于集合 package com pzb source import org apache flink ap
  • I Hate It

    很多学校流行一种比较的习惯 老师们很喜欢询问 从某某到某某当中 分数最高的是多少 这让很多学生很反感 不管你喜不喜欢 现在需要你做的是 就是按照老师的要求 写一个程序 模拟老师的询问 当然 老师有时候需要更新某位同学的成绩 Input 本题
  • volatile和synchronized的区别

    共性 volatile与synchronized都用于保证多线程中数据的安全 区别 1 volatile修饰的变量 jvm每次都从主存 主内存 中读取 而不会从寄存器 工作内存 中读取 而synchronized则是锁住当前变量 同一时刻只
  • 第一次 openwrt源码下载编译

    openwrt 学习记录 第一次 openwrt源码下载编译 MT7620开发板 安装虚拟机VMware 安装Ubnutu 先进入root账户 topeet ubuntu su 输入密码 1 搭建编译环境 参考 https blog csd
  • maven的使用

    目录 一 maven基本参数 二 maven基础结构 三 mvn的打包和运行 一 maven基本参数 groupId 是指项目里面的标识 一般写法是com mycom myapp 其中mycom是指你公司的域名 例如com google m