Maven学习记录之多模块开发

背景:每一个项目若是都有本身的service,vo,util等,就会形成代码的冗余(不免会有重复的逻辑),使用maven的分模块开发则能够解决这个问题。apache

实战:maven

建立了两个项目:fanxing,fanxing-service两个项目,fanxing依赖了fanxing-service,fanxing的pom.xml配置以下:ui

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.weiwei.fanxing</groupId>
  <artifactId>fanxing</artifactId>
  <version>0.0.1</version>
  <packaging>jar</packaging>

  <name>fanxing</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>com.weiwei.service.fanxing</groupId>
      <artifactId>fanxing-service</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>
</project>

能够看到,fanxing依赖的包不是个jar包,是由于maven多模块开发,dependency默认是先从当前的workspase开始找,以下图发现找到了则显示成包的形式。url

咱们把fanxing-service项目close,则找不到了。spa

若是还但愿能找到,怎么作呢?答案是对fanxing-service进行打包:code

运行run as  --> maven install,检查maven依赖:发现生成了包。xml

再看下项目(fanxing-service被open了):发现依赖仍然是包的形式。blog

再次关闭fanxing-service:发现再也不是找不到包了,而是使用了fanxing-service刚才打好的jar包。ci

 

小结:可见,dependency的包查找顺序为:开发

  1. 首先去当前workspace查找,找到了则显示包;
  2. 第一步没有找到,会去本地的maven仓库去找jar包,找到了则显示jar包。
相关文章
相关标签/搜索