背景:每一個項目若是都有本身的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的包查找順序爲:開發