maven添加子工程_maven创建子项目(适用于多模块管理项目)

news/2024/7/23 23:48:15 标签: maven添加子工程

在eclipse或者myeclipse下构建maven项目,该项目由多个子模块组成。

1.创建一个父项目

NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面

,什么也不做,直接下一步到Select an Archetype界面。

在这个界面中选择maven-Archetype-site-simple,然后选择下一步,进入选择Enter a group id for the artifact的界面

,在group id 和artifact id中输入你的group和artifact名称。我用的分别是A和B,选择完成。这时会在eclipse中生成一个项目,项目名是B。

此时B的pom文件如下所示:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

A

B

0.0.1-SNAPSHOT

pom

website

scp://webhost.company.com/www/website

UTF-8

2.创建子项目

2.1 将项目B中的src文件删除(可有可无,主要看个人需要)

2.2 选中项目B,点击右键,选择NEW -->project-->maven-->maven Module,点击下一步,在出现的界面中输入子模块的名称C,点击下一步,出现Select an Archetype界面。这时选择maven-Archetype-site-quickStart或者maven-Archetype-webapp(构建web层时使用),然后选择完成,即生成子项目C。

这时B的pom文件就变成了这样(和上面的比只是多了个modules标签):

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

A

B

0.0.1-SNAPSHOT

pom

website

scp://webhost.company.com/www/website

UTF-8

C

这时构建B的子项目完成,构建其他的子项目和此类似。

在构建第二个子项目D时可能在B中没有及时出现,这时只要把B项目刷新下就可以了。

ps:

其实在构建多模块的项目时,在选择父项目的类型时是可以选择任意的类型。选择项目类型的界面如下:

对于这些非常规类型的项目,如果想要成为父项目,需要做如下一些改动:

1.将pom.xml文件中的jar改为pom,若不换为pom则在打包的时候父项目会产生一个target文件;如果没有pom的可以在0.0.1-SNAPSHOT后面添加上这句话即可。

2.删除除pom.xml外的所有文件,其中JRE System Library是不能直接删除的,需要选择中,并单击右键Bulid Path-->Remove from bilud path即可移除。

这时的父项目就显得很干净整洁了。

其实在普通的项目上是不允许构建子模块的,能否在一个项目下创建子模块,主要取决于是否有pom这个配置。如果有这个配置则任何项目都可以创建子模块,硬要这样创建的话整个项目会变的不伦不类。看来maven在判断一个项目是否可以创建子模块其实是取决于这个配置的。


http://www.niftyadmin.cn/n/1257340.html

相关文章

python获取文件大小函数_大文件读取的实现-PYTHON

当前一个大文件大小,比当前的机器的内存大,先读取某个文件里的一部分。 文件遍历 因为文件保存了很多字符和行,因此也是循环常见的典型使用案例,最原始的方法可以调用文件对象的read方法,把文件内容一次性加载至字符串…

error: ‘phase_unwrapping’ in namespace ‘cv’ does not name a type typedef cv::phase_unwrapping解决办法

项目场景: 参考Ubuntu16.04安装配置opencv3.4.3opencv_contrib3.4.3进行opencv-contrib编译。 本人环境:ubuntu16.04opencv3.4.17opencv-contrib3.4.17。 问题描述: 按照博客一步步走,在make的99%出现如下error: e…

彩灯8个循环梯形图_8个动作,促进血液循环,缓解酸痛!拿去不谢!

如果你还没关注我,请点击上面日期右边创造未来→就可关注我!再点击关注。我们每天将会与您免费分享世界上最精华的资讯!这8个拉伸动作,能够促进全身血液循环,缓解身体的酸痛。拉伸的重点不在于时长,而在于质…

antv图表 根据屏幕大小响应式_地理可视化就这么简单、酷炫,蚂蚁金服AntV 空间数据可视化引擎 L72.0发布...

导读L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于 WebGL 的开源大规模地理空间数据可视分析开发框架。L7 中的 L 代表 Location,7 代表世界七大洲,寓意能为全球位置数据提供可视分析的能力。L7 以图形符号学为理论基础,将抽象复杂的空间数…

python循环跳过一个值_python怎么实现循环

python中循环主要有for循环和while循环。 while循环 如果条件成立(true),重复执行相同操作,条件不符合,跳出循环while 循环条件: 循环操作 while循环示例:输入王晓明5门课程的考试成绩,计算平均…

Realsense d435i深度相机+Aruco+OpenCV手眼标定全过程记录

文章目录前言一、前期准备1.1 手眼标定原理1.2 Aruco返回位姿的原理1.3 生成一个Aruco Marker1.4 安装aruco_ros包1.5 安装realsense_ros包二、实验环境三、实验过程3.1 配置Aruco launch文件3.2 获取Aruco相对于相机的位姿3.3 获取机械臂末端的位姿:3.4 Opencv求解…

合并两列代码_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)...

资源下载与技术交流本文所展示的自动驾驶中的移动目标提取与跟踪技术,全过程的代码以及相应的数据资源,详见下方链接。链接:https://pan.baidu.com/s/1Y_d5qb91bD-ZHXqRbBVN0g 提取码:pv2x相关联的,技术讨论&#xff0…

socket+多线程linux下简单实现python与C++进程通信(百来行代码 通俗易懂)

文章目录前言一、Socket和多线程二、效果演示三、代码前言 本文在ubuntu16.04下实现了python向c发送数据的socket通信,同时在两个进程中分别开启两个线程,主线程负责处理数据,子线程负责socket通信。(我也是刚开始学,…