来自javaweb中的javaweb中的软件工程领域,软件构建maven。
关于maven中的parent聚合一直都有没好好总结,固有这篇.
----------------------------------------------------------------------------------- 一 maven父子聚合项目 ---------------------------------------------------------------------------------------------
创建parent聚合项目有什么好处?
1.方便对子模块项目之间的管理
2.方便对子模块项目的打包,编译,运行。
3.对公共的部分可以很好的进行继承。
创建父项目,图解方式如下:
第一步 创建maven工程:
第二步:
第三步:
删除掉项目中的src下目录内容,只保留pom文件,目录如下:
至此,父工程项目创建完成。
创建子项目,图解方式如下:
第一步 选中该父项目,选中下图红色模块中的内容:
第二步 创建模块名称:
第三步 创建所需的maven工程next finash:
至此子项目也创建完成,此时父项目的结构如下:
分析pom文件的内容:
1.父项目中的pom文件
<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.lgy</groupId>
<artifactId>parent-DEMO</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>modulC</module>
<module>modulD</module>
</modules>
</project>
2.子项目中的pom
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lgy</groupId>
<artifactId>parent-DEMO</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.lgy</groupId>
<artifactId>modulC</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>modulC Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>modulC</finalName>
</build>
</project>
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lgy</groupId>
<artifactId>parent-DEMO</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.lgy</groupId>
<artifactId>modulD</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>modulD Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>modulD</finalName>
</build>
</project>
关于parent的属性介绍:
artifactId | 父项目的artifact标识符 |
groupId | 父项目的group标识符 |
version | 父项目的版本 |
relativePath | 父项目的pom.xml文件的相对路径。默认值为../pom.xml。maven首先从当前构建项目开始查找父项目的pom文件,然后从本地仓库,最有从远程仓库。RelativePath允许你选择一个不同的位置。 |
常见的maven操作:
1.版本属性抽取:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<mysql-version>5.1.21</mysql-version>
</properties>
使用方式例如:${mysql-version}
2.获取project常见的一些属性值
${project.groupId}}
${basedir}
${project.build.directory}
${project.groupId}
${project.version}
3.父子项目的内容是向上集成
<groupId>com.lgy</groupId>
<version>0.0.1-SNAPSHOT</version>
若子项目的groupId,version和父项目相同,可以不用写。
一 一 一 文件下下面创多个项目 一 一 一
有的时候子项目之间并不需要父项目,紧紧只是需要一个文件夹下面放同一个类型的项目,然后将此文件夹提交到该源码管理中即可。
转自百度:
Package Explorer顶部的右侧有有机表图标按钮,
-
点击倒三角
-
Top Level Elements->Working Set。此时就会发现,很多项目会自动纳入一个文件夹,这个文件夹的名字叫做other Projects,这是默认的
-
如果想自己建立自己的文件夹,点击倒三角,Configure Working Set,会出现弹框。
出现弹框后,点击New按钮,就可以创建文件夹。
在此界面,双击某一文件夹,就会进入编辑界面,可以修改文件夹名称,也可以选择将
那个项目放置到该目录下。
想删除,就选择remove。
Package Explorer视图如下:
创建文件夹过程就照着上面的步骤就可以了,动手试试,很简单。