其他分享
首页 > 其他分享> > Maven中关系与应用

Maven中关系与应用

作者:互联网

Maven中的关系

继承

一个Maven项目可以继承另一个Maven项目,分别称为子项目、父项目

场景:多个子项目中使用的是相同的依赖或插件,此时可以把相同的配置抽取到一个父项目中,进行统一的管理,保持一致性

步骤:

  1. 将父项目的打包方式设置为pom

    <!--
        打包方式:
        jar:Java项目的打包方式:默认值
        war:Web项目的打包方式
        pom:父项目的打包方式-->
        <packaging>jar</packaging>
    
  2. 在子项目中引用父项目,指定父项目的坐标

    <!--  引用父项目,指定父项目的坐标-->
        <parent>
            <groupId>org.example</groupId>
            <artifactId>parent</artifactId>
            <version>1.0-SNAPSHOT</version>
              <!--  指定父项目的pom.xml文件的相对物理路径-->
            <relativePath>xx/xx/</relativePath>
        </parent>
    
    

问题:有时并不是父项目的所有依赖都需要被项目继承,但是又希望能够通过父项目对依赖进行统一管理,如版本的控制

解决:使用dependencyManagement标签

步骤:

  1. 在父项目中配置dependencyManagement

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.ljy</groupId>
                <artifactId>mysql..</artifactId>
                <version>12.52.</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  2. 在子项目中引用父项目中的依赖、

<dependencies>
    <dependency>
        <groupId>com.ljy</groupId>
        <artifactId>mysql..</artifactId>
    </dependency>
</dependencies>

聚合

将多个子项目添加到一个父项目中,然后通过对父项目进行操作,从而实现对所有聚合的子项目的操作

在父项目的pom中

<!--    聚合子项目,指定子项目的根目录-->
 <modules>
     <module>../...</module>
     <module>../...</module>
 </modules>

依赖(继承)

项目C–>项目B–>项目A

概念:如果项目C依赖于项目B,项目B依赖项目A,则项目C也依赖于项目A,这叫依赖的传递

配置依赖关系:

<!--  依赖于其他子项目child01-->
        <dependency>
            <groupId>com.ljy</groupId>
            <artifactId>child01</artifactId>
            <version>xx</version>
        </dependency>

控制依赖的传递

并不是所有的依赖都会被传递

<dependency>
    <groupId>com.ljy</groupId>
    <artifactId>lof3</artifactId>
    <optional>true</optional>
</dependency>

不会出现jar包的冲突

使用Maven不会出现jar包冲突,通过两个原则来保证:

       <dependency>
            <groupId>com.ljy</groupId>
            <artifactId>child01</artifactId>
            <version>xx</version>
        </dependency>
       <dependency>
            <groupId>com.ljy</groupId>
            <artifactId>child02</artifactId>
            <version>xx</version>
        </dependency>

不要传递的依赖

方式1:在依赖的配置中配置不允许传递

<optional>true</optional>

方式2:在当前的项目中配置不接收传递的特定依赖

<dependency>
   <!-- 不接收特定的依赖 --> 
<exclusions>
 <exclusion>
    <groupId>xxx</groupId>
    <artifacdId>xxx</artifacdId>
 </exclusion>
</exclusions>
</dependency>

Maven Web项目

基本操作

<!--      Tomcat插件-->
      <plugins>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <configuration>
            <path>/</path>
            <port>8080</port>
          </configuration>
        </plugin>

使用Nexus搭建Maven私服

为什么要搭建私服

公司不提供外网给开发人员,无法使用Maven访问远程仓库,此时可以在局域网内找一台能访问外网的电脑搭建Maven私服

Nexus工具

用来搭建nexus工具

操作步骤:

  1. 下载之后解压缩并安装为系统服务
在解压后的第一个文件:bin\jsw\找到自己对应的系统版本\install-nexus.bat
install-nexus.bat
  1. 访问

    http://localhost:8081/nexus

  2. 登录并配置私服

添加阿里云镜像仓库:

私服网址的右上角:Log in

默认账号:admin

密码:admin123

方法1:

左边Repositories点击然后central下面configuration更改网址

方法2:

左边Repositories点击Add后Proxy Repository 填写(ID NAME)+Default Local Storage(地址):阿里云的镜像地址

然后 Public Repositories–>configuration 在下面把配置的阿里云添加到左边去,然后排顺序,放在central的前面

添加一些阿里云没有的jar包:

点击3rd party 然后Artifact Upload–>选择GAV 然后在添加本地jar包到私服去

Maven综合应用

分析

将项目分为多个项目,可也以按模块,或同时按层次和模块分

以ums为例,使用maven创建和管理项目:

步骤

  1. 创建工程
  2. 配置依赖
  1. 配置dao工程

    映射文件储存位置,两种方法:

    • 将映射文件放在resources目录下

      会被打包部署

    • 将映射文件放在java目录下

      默认只会对该目录下的java代码进行打包部署,如果希望对该目录下的配置文件也进行打包,需要额外的配置

在这里插入图片描述

标签:关系,ljy,依赖,应用,项目,Maven,子项目,com
来源: https://blog.csdn.net/weixin_51418572/article/details/110563048