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包。
相關文章
相關標籤/搜索