背景:每一个项目若是都有本身的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的包查找顺序为:开发