入职学习------maven

本文详细介绍Maven的使用方法,包括项目创建、常用命令、生命周期、POM文件解析、依赖管理、继承与聚合策略,以及如何配置本地和远程仓库。通过实例演示如何利用Maven进行项目构建、测试和部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

maven使用

  • maven手动创建
  • maven常用的命令
  • maven生命周期介绍-clean-default-site
  • maven-pom文件简介
  • maven仓库
  • maven依赖
  • maven聚合与继承
  • maven私服
  • maven测试

    一:maven手动创建

  • 使用命令行:mvn archetype:generate 创建,其实我们平时使用IDEA的时候就和这个差不多的。

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=local

  • -DgourpId: 组织名,公司网址的反写 + 项目名称
  • -DartifactId: 项目名-模块名
  • -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart,创建一个简单的 Java 应用
  • -DinteractiveMode: 是否使用交互模式

二:常用的命令

1:mvn  compile:编译源代码;    mvn test-compile :编译测试代码

2:mvn test:运行测试,编译源代码并运行测试代码。

3:mvn package:打包,我试着的时候打了一个war包。

4:mvn install:将jar包部署到本地,比如两条日志中:

[INFO]Installing /home/sysadmin/mavnhomework/my-WebApp/target/my-WebApp.war to /home/sysadmin/.m2/repository/com/mycompany/app/my-WebApp/1.0-SNAPSHOT/my-WebApp-1.0-SNAPSHOT.war
[INFO] Installing /home/sysadmin/mavnhomework/my-WebApp/pom.xml to /home/sysadmin/.m2/repository/com/mycompany/app/my-WebApp/1.0-SNAPSHOT/my-WebApp-1.0-SNAPSHOT.pom

5:mvn deploy                                        远程上传jar

6:mvn clean                                          清除产生的项目

7:mvn help:effective-pom          窥探SuperPom

8:mvn dependency:tree               maven依赖树

9:mvn clean package -Pdev -Dmaven.test.skip=true  打包时候过滤dev环境的test

三:生命周期

https://www.runoob.com/maven/maven-build-life-cycle.html 这个了解一下

四:pom.xml文件和仓库简单介绍

以project开头和结尾,定义命名空间,编码格式等

依赖的父pom(mvn help:effective-pom )

groupId 属于项目组,一般是公司                          <groupId>com.mycompany.app</groupId>

atifactId 定义当前maven项目组中唯一的ID      <artifactId>my-WebApp</artifactId>

version指定了当前项目额版本号  SNAPSHOT快照的意思 项目还在开发中不是稳定版本的意思   <version>1.0-SNAPSHOT</version>

packaging:打包方式 <packaging>war</packaging>
modelVersion指明当前pom模型的版本 maven2和3只能是这个<modelVersion>4.0.0</modelVersion>
name声明了一个对于用户更友好的项目名称,可写可不写<name>my-WebApp Maven Webapp</name>
finalname 项目打包名称<finalName>my-WebApp</finalName>(在build中定义)
profile:选择相应的环境,beta,线上环境选择(在build中定义)
仓库有两个版本:一个是不稳定的、处于开发中的版本:snapshot。稳定版本:release

本地仓库就是respository.可以再setiing.xml可以修改自己本地仓库<localRepository>目录</localRepository>

中央仓库是安装maven中的lib/maven-model-builder-3.x.x.jar


五:maven依赖特性

依赖:

type:依赖类型

scope:依赖范围  compple 编译依赖范围默认的。system系统依赖范围。import导入依赖范围。

                                    test测试依赖范文,比如单元测试使用,打包部署是不是使用。

                                   provided:已提供依赖范围,打包发布不适用,jdk已经提供好。

                                  runtime:运行时依赖范围,运行时使用。

optional:依赖是否可选

exclusions:排除传递依赖

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
  </dependency>
</dependencies>

依赖冲突解决:路径优先原则;

                           指定在dependencyManagement:

<dependencyManagement>

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
  </dependency>
</dependencies>

</dependencyManagement>


六:maven继承与聚合

  • 聚合:能够使用一个命令同时构建多个模块

将两个子工程用modules引入:

<modules>

<module>子工程pom</module>

<module>子工程pom</module>

</modules>

<packaging>pom</packaging>
  • 继承:生命父pom供子pom继承
    聚合模块和继承关机中的父模块除了pom之外没有实际的内容。



     

    七:作业

    • 使用archetype插件生成一个webapp项目。

      mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=local

    • 开发一个父子工程项目,并能够正确构建,添加单元测试代码,Main方法。要求:
      继承公司的父pmo(11bee-supom-generic),要求用当前最新的版本。提示,可以去nexus.corp.11bee.com看目前存在的版本。
      使用properties占位符修改spring各组件的版本为你想指定的版本。
      有依赖管理(dependencyManagement)。
    • 使用assembly插件把依赖的所有jar包打到同一个包里面。
      可以直接在上面工程的pom中增加。
  • 使用mvn assembly:assembly
  •  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值