pom (project object model) 工程对象模型
Maven安装
安装成功
创建项目:选择maven jdk
选择
maven-archetype-quickstart(基础骨架)
maven-archetype-webapp (web骨架)(要依赖基础骨架的web项目)
自己建的项目,需要把文件夹,设置成Source 源文件格式,才能够创建java文件
需要maven依赖的时候,直接在 https://mvnrepository.com/ 去找,然后加到pom.xml
groupId:定义当前Maven组织名称
artifactId:定义实际项目名称
version:定义当前项目的当前版本
SNAPSHOT:开发版本
RELEASE:发布版本
将自己的项目,添加到maven库 ,选择maven菜单栏--》Lifecycle--》package
这样自己创建的工程,就添加到maven库中了,当在别的工程中,需要引用时,直接在pom.xml中添加
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 父类依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<!-- 父依赖位置,找依赖优先级:relativePath > 本地仓库 > 远程仓库-->
<relativePath>./pom.xml</relativePath>
</parent>
<!-- 组织id -->
<groupId>com.nextstep</groupId>
<!-- 项目id -->
<artifactId>spring02</artifactId>
<!-- 版本 SNAPSHORT:开发版,RELEASE:正式版 -->
<version>0.0.1-SNAPSHOT</version>
<name>spring02</name>
<description>Demo project for Spring Boot</description>
<!-- 自定义 变量 使用方法:${java.version} -->
<properties>
<java.version>1.8</java.version>
</properties>
<!-- 使用系统集成变量
${project.basedir} 所有子项目下的目录,例如:${project.basedir}/src/main/resourcs
-->
<!-- 总项目依赖才需要-->
<!-- 管理工程列表 -->
<modules>
<module> ssm_controller</module>
<module>./ssm_service</module>
</modules>
<dependencies>
<dependency>
<groupId>组织id</groupId>
<artifactId>项目id </artifactId>
<version>版本号</version>
<!-- 对外是否隐藏当前依赖(true/false) 依然可以在当前项目中使用,与下方的排除依赖不同-->
<optional>false</optional>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${java.version} </version>
<!-- 主动排除子依赖,可以理解为:在本依赖中,不在使用当前依赖的某个子依赖-->
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.13</version>
<!--指定当前依赖范围:默认compile
compile: 主代码,测试,打包
test : 测试
providmd:主代码,测试
runtime: 打包
-->
<scope>compile</scope>
</dependency>
</dependencies>
maven命令
mvn compile
- 完成编译操作
- 执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。
mvn clean
- 执行完毕后,会将target目录删除。
mvn test
- 完成单元测试操作
- 执行完毕后,会在target目录中生成三个文件夹:surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件)
mvn package
- 完成打包操作
- 执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war
mvn install
- 执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作
- 执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用
mvn 组合命令
- mvn clean compile
- mvn clean test
- mvn clean package
- mvn clean install
IDEA 自带工具
配置maven 命令到 运行
同上图,打包指定配置文件:install -P(P一定要大写) develop(环境变量id)
跳过当前项目测试
设置maven 本地默认仓库位置
setting.xml 文件中
设置仓库镜像地址
<mirror>
<!--保证唯一就行-->
<id>alimaven</id>
<!--mirrorOf对那个仓库进行镜像,默认center是访问国外域名,所以对center进行镜像,中央仓库还是repo2.maven.org,但是访问的时候,会选择访问aliyun-->
<mirrorOf>central</mirrorOf>
<!--无所谓-->
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
maven 下载过程中,点了取消下载
找到maven 本地仓库文件夹,删除所有的jar (条件允许,或者jar包比较少的情况写)
然后回到IDEA执行更新
IDEA编辑时不报错,但是运行时提示jar不存在
service项目 依赖 dao项目,但是dao在本地仓库不能存在(在项目中未执行install打包),在idea编辑代码时,并不会报错,但是maven运行或者打包service时,会提示dao不存在依赖。那么就说明,idea 扫描到了,本项目中的 service ,并未打包到 本地仓库。但是maven找依赖是去本地仓库寻找,所以需要在dao中,执行install ,让其打包到 本地maven仓库,然后在去执行service的install。