openmeetings-install分析(一)——目录结构分析

2021SC@SDUSC

本文分析的openmeetings版本为4.x

 

整体结构

打开项目的src文件夹,在该目录下打开cmd,输入tree openmeetings-install命令即可查看openmeetings-install的树形目录结构
openmeetings-install包整体结构

src目录下包含了三个文件夹:main、site、test

  • main文件夹用于存放项目的java文件及resources静态资源
  • test文件夹用于存放测试用的java文件
  • site文件夹用于存放配置的站点描述文件,官方参考文档:Configuring the Site Descriptor

此外还有openmeetings-install.iml文件和pom.xml文件

  • openmeetings-install.iml文件是idea自动创建的模块文件,用于java应用开发,存储模块开发相关的信息及模块路径信息等等
  • pom.xml文件是Maven工程的基本工作单元,包含了项目的基本信息,用于描述项目如何构建、声明依赖等等

 

因为pom.xml描述了maven项目的基本信息,对它进行分析可以从整体上对项目有一个大致的了解把握,所以下面我们来分析pom.xml文件

 

pom.xml文件分析

我个人习惯在学习时把笔记以注释的形式写在代码附近,方便理解每一句代码是什么意思

<?xml version="1.0" encoding="UTF-8"?>

<!--
这是openmeetings-install的pom文件
POM(Project Object Model,项目对象模型)是Maven工程的基本工作单元,
是一个XML文件,包含了项目的基本信息,用于描述项目如何构建、声明依赖等等
执行任务或目标时,Maven会在当前目录查找POM。
它读取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/maven-v4_0_0.xsd">
    <!--模型版本-->
	<modelVersion>4.0.0</modelVersion>
    <!--父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。-->
	<parent>
    <!--在创建POM前,我们首先需要描述项目组(groupid),项目的唯一ID-->
    <!--公司或组织的唯一标志,且配置时生成的路径也是由此生成
	如下,maven会将该项目打包成的jar包放本地路径:
	/org/apache/openmeetings-->
        <!--在创建POM前,我们首先需要描述项目组(groupid),项目的唯一ID-->	
		<groupId>org.apache.openmeetings</groupId>
        <!--项目的唯一ID,一个groupId下面可能有多个项目,是靠artifactId区分的-->
		<artifactId>openmeetings-parent</artifactId>
        <!--版本号-->
		<version>4.0.7</version>
        <!--父项目的pom.xml文件的相对路径。
        相对路径允许你选择一个不同的路径。默认值是../pom.xml。
         Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。	
        -->
		<relativePath>..</relativePath>
	</parent>
	
	<artifactId>openmeetings-install</artifactId>
	<!--项目产生的构件类型,例如jar、war、ear、pom。
	插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型 -->
	<packaging>jar</packaging>
	<!--项目的名称, Maven产生的文档用 -->
	<name>Openmeetings Install</name>
	<!-- 项目的详细描述, Maven 产生的文档用。 当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标
    签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。 -->
    <!--这里的项目描述说明这个install包是OpenMeetings命令行管理和安装程序所需的类的模块 -->
	<description>Module for OpenMeetings command line admin and classes necessary for installer.</description>
	<!--描述了这个项目构建环境中的前提条件。 -->
	<properties>
	<!--site.basedir指的是声明一个变量名称为site.basedir,也就是配置一个自定义属性,可以在其他地方使用,使用形式是${}。而site.basedir的值为${project.parent.basedir},也就是父工程的位置。-->
		<site.basedir>${project.parent.basedir}</site.basedir>
	</properties>
	<!--dependencies该元素描述了项目相关的所有依赖。
	这些依赖组成了项目构建过程中的一个个环节。
	它们自动从项目定义的仓库中下载。 -->
	<dependencies>
	    <!--spring相关的依赖 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
		</dependency>
		<!--引用openmeetings-core的依赖 -->
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-core</artifactId>
		</dependency>
		<!--commons-cli:提供了解析命令行参数的API -->
		<dependency>
			<groupId>commons-cli</groupId>
			<artifactId>commons-cli</artifactId>
			<version>${commons-cli.version}</version>
		</dependency>
		<!--引用openmeetings-util的依赖 -->
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-util</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
            <!--作用域-->
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

从以上源码及注释中可以了解到:

  • openmeetings-install是OpenMeetings命令行管理和安装程序所需的类的模块

  • 它需要注入openmeetings-core和openmeetings-util的一些依赖,除此之外,我还需要学习Spring、commons-cli等等相关知识以便于后续代码的理解

总结

这篇文章简单整理了一下openmeetings-install的目录结构,通过pom.xml文件对项目的基本信息有了一定的了解,下一篇文章将从main\java\org\apache\openmeetings\installation文件夹开始对其中的源码进行分析

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值