Maven

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

  1. 完成编译操作
  2. 执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。

 mvn clean

  1. 执行完毕后,会将target目录删除。

 mvn test

  1. 完成单元测试操作
  2. 执行完毕后,会在target目录中生成三个文件夹:surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件)

 mvn package

  1. 完成打包操作
  2. 执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war

 mvn install

  1. 执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作
  2. 执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用

 mvn 组合命令

  1. mvn clean compile
  2. mvn clean test
  3. mvn clean package
  4. 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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值