maven(一 基本操作 命令 标签)
原来一直没有使用maven 小公司,只是听说过这个东西,我没事就喜欢 去学习一些新东西。maven学了几次,但是 没有用上 所以 最后还是忘记了,或者说不知道怎么使用maven,一年半以前公司 改革 ,招了一个技术大牛,引入了一些那时候 感觉 很新颖的技术,maven,springboot kafka,nginx redis 等,那时候对一个小公司 来说,这些 技术 还是比较 高端了,今天 就说一说 使用maven创建项目的时候 和以后 普通项目的区别:
maven是什么,原来一直以为就是可以不用自己在网上去到处找jar包来 放到lib文件下了。只需要知道 一个jar包的地址 然后就 可以根据pom.xml文件配置 地址 然后就可以下载了,那时候 只知道是能这样干,(然后把自己的web项目拿去运行 一脸吗,懵逼 不知道怎么运行了,后面在说一下如何运行)后来 才发现 maven 其实提供的功能远不止这些。
如何创建一个maven项目:
src/main/java:主要放你项目的源文件,
src/main/resourecs:项目的配置文件
src/test/java:测试代码
src/test/resources:测试配置文件
target:目标文件,maven打出来的jar包 或者war包 都放在这个目录
pom.xml:maven的主要配置文件创建成了一个maven项目(如果创建 maven项目 不勾选的
话目录结构不是这样子:)
- 在此基础上说一下 maven命令的使用 maven管理项目分为:编译 测试 运行 打包 部署 运行过程 找到 项目 路径地址 打开 cmd窗口:
编译命令:mvn compile 将源文件生成.class文件
测试命令:mvn teset
清理命令:mvn clean 清理target 目录下的所有文件
打包命令:mvn package java项目打成jar包 web项目 打成war包如果想将自己的项目 打包 到本地仓库之中 ,可以使用 mvn install命令:
运行 maven web项目:mvn tomact:run 主要还是详聊一下pom.xml 文件里面的配置(我这边以我自己的一个pom父项目来聊 用到的比较多):
<packaging>pom</packaging> maven项目的打包类型 有 pom jar war web项目 打包war包 java项目 打成jar包 默认是jar包
pom所有父项目 都是pom 而不是 jar或者war ,父项目,有一个重要的属性,那就是modules,通过modules标签将项目的所有子项目引用进来,在build父级项目时,会根据子模块的相互依赖关系整理一个build顺序,然后依次build,表示该父项目中有两个子项目jiahou-hongbao-protobuf,以及jiahou-hongbao<modules><module>jiahou-hongbao-protobuf</module><module>jiahou-hongbao</module></modules>
<dependencyManagement><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.13</version></dependency></dependencies></dependencyManagement>
dependencyManagement:从命名看来 依赖管理器,在父项目中 主要用于管理jar包 版本号 如果该项目的子项目 需要用到mysql-connector-java 的话 只需要:
<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency></dependencies>
不需要在加上版本号,所有的子项目都用8.0.13的版本号 如果需要 用自己的版本 号 则自己在添加对应的版本号。此时不在继承来自父项目的该jar包的版本号。
dependencies:作用可以理解是 引入声明在dependencies的所有jar包(版本号相同的话 子类也自动引入了jar包)
dependency:依赖注入,需要一个jar包 就 需要 一个dependency 所有的dependency 都 声明在 dependencies
- 关于mavne项目中的关于依赖传递有一个A 项目 依赖于B 项目 B 项目 又依赖于B 项目,则A 项目要使用B 项目的时候 则会引入 c项目。其实对于A 项目来说 只是要用到一些B 项目的功能,但是 也会引入C项目,导致本地仓库jar包变多,又假如A 项目 在引入B 项目的时候 AB 两个项目都引入了同一个jar包 但是 jar包版本不同 则可能导致 jar包冲突。如果父项目 依赖了 项目 x项目 但是子项目 又不需要依赖x项目 我们可以排除x项目:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<exclusions>
<exclusion>
<groupId>x</groupId>
<artifactId>x</artifactId>
</exclusion>
</exclusions>
</dependency>以上 表示 在 引入 mysql jar包的时候 排除 X
- 关于<build>标签:
<finalName>打出来的包的名字</finalName>
插件配置 如果不用一下配置 则 项目 效果是:
有时候一个项目 很大的时候(很多依赖jar包) 我们却要实jar包分离 可以可以使用:
<resources><resource><directory>src/main/resources</directory><excludes><exclude>*</exclude></excludes><filtering>true</filtering></resource></resources>
pluginManagement的配置和plugins的配置是一样的,只是用于继承,方便 子项目模块中 可以直接 使用,不用在重新配置
<build> ... <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> <executions> <execution> <id>pre-process-classes</id> <phase>compile</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>pre-process</classifier> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> ... </build>
子项目 只需要 :
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> </plugin> </plugins>
以上就是maven的一些 标签闲聊,还是有很多 工作中没有遇到的 如果 以上 有什么讲的不对。欢迎留言指正!!!
转载于:https://www.cnblogs.com/920913cheng/p/10196945.html
maven(一 基本操作 命令 标签)相关推荐
- mvn install java版本,maven的打包命令--assemblyinstall和maven update之后jdk版本变回1.5的问题...
maven的打包命令–assembly&install和maven update之后jdk版本变回1.5的问题 在进行maven项目打包时,可以有另个命令assembly和install 一. ...
- 面试题:说说maven 以及打包命令
面试题:说说maven 以及打包命令 maven的打包命令: mvn clean package 依次执行clean.resources.compile.testResources.testCompi ...
- maven的常用命令
install 安装 功能: 编译和打包,把打好的可执行的jar包(或者war包或者其他包)部署到本地maven仓库 编译 javac 打包 -jar,将java代码打包为jar文件 安装到本地仓库- ...
- Maven - 构建与命令
Maven - 构建与命令 Maven是一款服务于Java平台的自动化构建工具.那么什么是构建? 构建就是以我们编写的Java代码.框架配置文件.国际化等其他资源文件.JSP页面和图片等静态资源作为& ...
- 【Maven】Maven的常用命令
目录 一.Maven的常用命令 1.compile 编译命令 2.test 测试命令 3 .clean 清理命令 4.package 打包命令 5. install 安装命令 6.Maven 指令的生 ...
- maven打包的命令
maven打包的命令 mvn clean install package 先删除目标文件夹 编译并且打包 -pl 参数 : 选择具体打包哪个节点 例如 XXX-web XXX-api 多个模块 , 分 ...
- 使用Maven tomcat:run命令启动web项目时修改默认端口的方法
在使用maven时,修改插件tomcat启动端口.一开始我在pom.xml配置文件里面修改,如下面所示: 1 2 3 4 5 6 7 8 9 <plugin> <groupId> ...
- maven <server>标签的id属性
如果要在项目中deploy到nexus maven私服, 肯定要写下面配置 <distributionManagement><repository><id>qqtt ...
- maven常用的命令(window控制台和linux命令是一致的)
六个必须掌握的maven命令: 1. mvn help:describe 你是否因为记不清某个插件有哪些goal而痛苦过,你是否因为想不起某个goal有哪些参数而苦恼,那就试试这个命令吧,它会告诉你一 ...
最新文章
- 树莓派 ubuntu 安装Python+OpenCV
- python不能处理excel文件-python处理Excel文件的几个模块
- [LeetCode] 565. Array Nesting
- [转载]MVP(SC),MVP(PV),PM,MVVM 和 MVC 表现模式架构对比
- 3-2:类与对象上篇——类的对象模型和计算类的大小以及this指针问题
- 【转】性能测试,影响 TPS 的一些因素
- 关于MySQL分表操作的研究
- Map的使用和遍历方法示例
- 带动量的随机梯度下降法_梯度下降法(SGD)原理解析及其改进优化算法
- oppo手机维语字体_OPPO手机中字体设置在哪里 OPPO手机中字体设置方法
- CSDN免费快速获得积分和直接获取下载码的几个办法
- 计算机232接口接线图,串口线(232接口详细接线图)
- 怎么把小写字母(英文)转换成大写
- python caffe框架_Windows下的caffe框架的配置
- python解压rar、zip压缩包
- 《精益创业》读书笔记
- sign-file: certs/signing_key.pem: 解决方法
- CentOS 8 更新/etc/yum.repos.d
- KeyMob聚合广告携手开发者 共谋移动应用广告的福利
- css文字和数字或者英文对不齐解决方案