Maven管理多模块运行

Maven 是一种软件项目管理工具,依靠POM对象完成对项目的构建、报告和文档的管理。
在大型项目中往往需要多个模块共同开发和协作,Maven在多模块的构建与协作方面也有着很大的优势。 使用IDEA创建一个项目,项目目录如下:

Maven管理多模块运行_第1张图片
multiModules(parent):项目名称
child1:其中一个moudle
child2:其中一个moudle

项目构建
parent:构建项目依赖,包括必要的依赖jar包和必要插件的构建
child1引用parent的依赖包,并实现访问百度的http接口请求
child2调用child2的对象调用接口

parent的pom文件

 <modules>
        <module>child2</module>
        <module>child1</module>
    </modules>
    <properties>
        <maven.httpcore>4.4.10</maven.httpcore>
        <maven.httpclient>4.5.6</maven.httpclient>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <repositories>
        <repository>
            <id>abcd</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    <dependencyManagement>
        <dependencies>
             <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                 <version>${maven.httpcore}</version>
              </dependency>
              <dependency>
                  <groupId>org.apache.httpcomponents</groupId>
                 <artifactId>httpclient</artifactId>
                 <version>${maven.httpclient}</version>
             </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${maven.httpclient}</version>
            </dependency>
            <dependency>
                <groupId>com.test.group</groupId>
                <artifactId>child1</artifactId>
                <version>1.0.0</version>
            </dependency>

            <dependency>
                <groupId>com.test.group</groupId>
                <artifactId>child2</artifactId>
                <version>1.0.0</version>
            </dependency>
         </dependencies>
    </dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
            </plugin>
        </plugins>
    </build>

****
	声明项目中引入的moudles
****
将依赖的jar包声明,并非在构建parent的时候引入进来,这样在其他moudles引入该依赖时候不需要填写该依赖包的version即可引入,方便jar的版本管理

child1的pom文件

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
    </dependency>
</dependencies>
只需要填写依赖jar的groupId和artifactId即可,version与在parent定义的version相同

访问百度接口请求(代码略)

child2 pom文件


<dependencies>
    <dependency>
        <groupId>com.test.group</groupId>
        <artifactId>child1</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>
只需将child1引进即可
child2调用child1的接口请求
public class Entrance {
    public static void main(String[] args) throws IOException, URISyntaxException {
        HttpUtil.visitBaidu();
    }
}

运行结果
在这里插入图片描述

你可能感兴趣的:(Maven管理多模块运行)