这篇文章给大家介绍maven中怎么重构项目,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
user-system拆分成:
user-web
user-service
user-dao
user-common
我们对其拆分后很有可能存在多个子项目中同时依赖某个jar包,如果使用不当可能会导致每个模块使用的版本不一样,所以想想能不能有什么方式来解决这类问题呢?
答案:能。但是得先了解两个概念:聚合和继承。
所谓的聚合就是我们如果想一次性构建多个项目模块,那我们就需要把这些项目模块进行聚合。
配置模板
<modules> <module>项目模块一</module> <module>项目模块二</module> <module>项目模块三</module> <module>项目模块...</module></modules>
比如我们对user-web、user-service、user-dao、user-common四个项目模块进行聚合。
<modules> <module>user-web</module> <module>user-service</module> <module>user-dao</module> <module>user-common</module></modules>
注意:其中module的路径为相对路径。
这样就解决了我们项目模块的聚合,我们再来看看maven是如何来解决由于重复依赖导致版本不一样的问题。
继承为了消除重复,我们把很多相同的配置提取出来,例如:grouptId,version等 。
<parent> <artifactId>maven-demo</artifactId> <groupId>com.tian</groupId> <version>1.0-SNAPSHOT</version></parent>
继承代码过程中,可以定义属性,例如:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <junit.version>4.13.1</junit.version> <maven.version>0.0.1-SNAPSHOT</maven.version></properties>
访问属性的方式为${junit.version},例如:
<?xml version="1.0"><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"> <parent> <artifactId>maven-demo</artifactId> <groupId>com.tian</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>user-web</artifactId> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!-- 使用了parent中 junit.version --> <version>${junit.version}</version> </dependency> </dependencies></project>
这样我们就可以使用到上面定义的属性junit.version=4.13.1。
由于项目模块较多,所以我们又抽象了一层,抽出一个parent来管理子项目的公共的依赖。为了项目的正确运行,必须让所有的子项目使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果。
<dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies></dependencyManagement>
这样的好处是子模块可以有选择性的继承,而不需要全部继承。
这样做的好处:统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,才能保证测试的和发布的是相同的成果,因此,在顶层pom中定义共同的依赖关系。同时可以避免在每个使用的子项目中都声明一个版本号,这样想升级或者切换到另一个版本时,只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个版本号时,只需要在dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。
在前面我们构建多模块项目中,关系如下
配置我们之前安装好的maven目录、maven下面的setting.xml以及本地仓库目录。然后Apply--->OK。
这样我们就把Maven集成到我们的IDEA中来了。
我们可以在父项目中对所有子项目进行编译、打包等。我们就来对所有子模块进行打包。
也可单独对某个子项目进行打包等操作。比如我们对user-common进行clean。
然后把src目录删掉,创建子项目:
选中user-parent项目,右键,选中New-->Module
next。填写子项目名称,我们这里创建一个user-web的子项目:
点击Finish:
已经添加了modules,同时把我们的user-web添加进去了。
同样方法,我们就可以创建更多字项目了:
再看看user-parent中的pom.xml文件内容:
关于maven中怎么重构项目就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。