Maven 父子工程的一些细节

 

Project,项目,也叫做工程。

父子工程中,子模块会自动继承父工程的资源、依赖,但子模块之间是独立的,不能直接访问彼此中的资源、类。

就是说我们可以把多个子模块都要用的资源、依赖提出来,放到父工程中,注意微服务的每个服务都是独立的,不能这么干。


父子工程的依赖继承问题

子模块会继承父工程的依赖,但并不是所有继承下来的依赖都有效、还能在子模块中使用。

作用域是provided、test的依赖,继承下来都是无效的,需要在子模块的pom.xml中重新导入。


使用其它子模块中的类

有时候我们要使用本项目其它子模块中的类,或者使用其它项目的某个模块中的类。

常见的情况是:把某个模块打包为jar,安装到公司私服,供公司内部使用。

不能直接使用其它子模块中的类,需要先把要使用的子模块打包为jar,安装到仓库,然后在要用的子模块的pom.xml中引入依赖。

比如我要在service子模块中使用dao子模块:

(1)对dao子模块中的install双击,打包为jar,安装到仓库

(2)在service子模块的pom.xml中导入依赖:

     <dependency>
            <groupId>org.example</groupId>
            <artifactId>dao</artifactId>
            <version>1.0</version>
        </dependency>

对应dao模块的公司|组织名、模块名、版本号。


父子工程的2种启动方式

(1)通过Maven的tomcat插件启动

在父工程的pom.xml中添加tomcat插件

    <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <!--配置tomcat的端口号、将工程映射到哪个路径(域名后面的工程名)、uri编码字符集-->
          <configuration>
            <port>8080</port>
            <path>/ssm</path>
            <uriEncoding>UTF-8</uriEncoding>
          </configuration>
        </plugin>

tomcat插件启动方式一:

 如果没有出现tomcat7,刷新一下、重新导入。

tomcat插件启动方式二:

说明

  • 这2种方式都是通过Maven的tomcat插件来启动,都需要在父工程的pom.xml中配置tomcat插件。
  • 其实真正部署到tomcat上的是web模块,所以也可以在web模块的pom.xml中配置tomcat插件,启动该web模块。
  • 如果要引用其他模块中的类,都需要先install安装到本地仓库或私服,然后在pom.xml中添加该模块的依赖。

(2)使用外置的tomcat来启动

无需在pom.xml中配置tomcat插件。

猜你喜欢

转载自www.cnblogs.com/chy18883701161/p/12297476.html