(二)maven依赖,两个项目之间如何依赖,继承实现

maven的jar之间存在依赖关系的,我们在引入一个时,其他有依赖关系的也会被引入

依赖排除:

比如现在有两个依赖关系,A(x,java,y.java,z.java)  B(a,java,b,java,c.java),但是他们之前的依赖实质是 z.java--c.java,那么就不需要a和b,进行如下配置进行排除:

  <exclusions>
                <exclusion>
                    <artifactId></artifactId>
                    <groupId></groupId>
                </exclusion>
            </exclusions>

如图,在依赖包的<dependcy>标签之中,通过gav定位需要排除的beans即可

依赖的传递性:

A.jar--B.jar--C.jar:

三者依赖关系如上,如果想要让A也依赖于C,那么B.jar---C.jar的依赖范围必须是compile

两个项目之间的依赖,

现在有两个项目,HelloWorld和HelloWorld2,这是他们的目录结构

 

helloworld的坐标

   <modelVersion>4.0.0</modelVersion>

    <groupId>org.apache.maven</groupId>
    <artifactId>HelloWorld</artifactId>
    <version>1.0-SNAPSHOT</version>

如果想在hellowold2之中使用 Helloworld之中类,需要以下几个步骤:

1.helloworld项目之中,执行mvn install  ,将当前项目打包成jar包,并放进本地仓库当中

2.helloworld2项目之中的的pom.xml之中,加入依赖:helloworld的坐标

  <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>HelloWorld</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

,之后更新项目,就可以成功的引入我们自定义的项目jar包啦。如图,可以引入helloworld项目的HelloWorld方法

 maven继承实现:

现在有两个项目  A-B,

继承就是说B项目之中依赖了的包,A项目也可以使用。一般用于统一管理版本号等

具体实现如下:

1.创建父工程parent,打包方式为pom,并在其中依赖junit.jar,注意要写在<dependencyManagement>标签之中。如下

 

接下来在子工程Helloworld的pom.xml当中添加父工程标签,这里的<relativePath>是父工程的pom.xml文件的位置,其他是父工程的gav

    <parent>
        <groupId>org.apache.maven</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>

  接下来在子类当中,声明一下需要使用父类当中的哪些jar包:声明写在pom.xml的<dependenices>标签之中,如下:

可以看到有一个向上继承的符号,说明继承已经成功了。更新之后发现junit已经导入,

Spring项目中,Maven是一个强大的构建工具,用于管理和协调项目的构建过程,包括依赖关系的管理。当你有多个模块时,每个模块都可以有自己的pom.xml文件,这使得你可以更好地组织和复用代码。 在Maven中,要实现模块间的依赖,你需要做以下几点: 1. **创建模块(projects)**:首先,在你的项目结构中,为每个功能或服务创建一个独立的目录,例如`module-a`, `module-b`, etc。 2. **每个模块的pom.xml**:每个模块的根目录下都有自己的pom.xml文件,这是Maven项目的配置中心,包含了模块名、版本信息以及依赖管理。 - 在`<modules>`标签内列出所有子模块。 - 使用`<dependencies>`标签添加对其他模块的依赖,如: ```xml <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>module-b</artifactId> <version>1.0.0</version> <!-- 如果是范围限定,可选 --> <scope>compile</scope> </dependency> </dependencies> ``` 3. **设置父pom**:如果有一些共性的依赖或者其他设置(比如插件、仓库等),可以在一个总的父pom.xml文件中定义,然后让各个子模块继承这个父pom。这样,这些配置就不必重复在每个子模块的pom里。 - 创建一个名为`parent/pom.xml`的文件,包含`<modules>`和`<dependencyManagement>`标签,定义共同的依赖。 - 子模块的pom.xml只需使用 `<parent>` 标签指向上述父pom文件: ```xml <parent> <groupId>com.example.parent</groupId> <artifactId>common-parent</artifactId> <version>1.0.0</version> </parent> ``` 4. **构建与打包**:当需要编译和打包整个项目时,Maven会自动处理各个模块的依赖,并确保所有的模块都能正确地编译和部署。 实际例子: 假设你有两个模块,`web-service` 和 `database-access`。`web-service` 需要 `database-access` 的API。在它们各自的pom.xml文件中: ```xml // web-service/pom.xml <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>database-access</artifactId> <version>1.0.0</version> </dependency> <!-- ...其他web-service的依赖... --> </dependencies> // database-access/pom.xml <modelVersion>4.0.0</modelVersion> <dependencies> <!-- ...数据库连接相关的依赖... --> </dependencies> ``` 然后在 `parent/pom.xml` 中(如果有)添加共同的依赖声明: ```xml <!-- parent/pom.xml --> <dependencyManagement> <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>database-access</artifactId> <version>1.0.0</version> </dependency> </dependencies> </dependencyManagement> ``` 现在,当你从命令行运行 `mvn clean install` 命令时,Maven会自动处理这两个模块之间依赖关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值