池州市网站建设_网站建设公司_Sketch_seo优化
2025/12/25 17:42:36 网站建设 项目流程

xml

可扩展标记语言 (Extensible Markup Language, XML) ,标准通用标记语言的子集,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 可扩展性良好,内容与形式分离,遵循严格的语法要求,保值性良好等优点。

pom.xml

POM(Project Object Model,项目对象模型)是Maven项目的核心配置文件,定义了项目的基本信息、依赖关系、构建配置等。

Maven工作原理:

  1. 读取pom.xml文件获取项目配置
  2. 解析依赖关系并下载所需库文件
  3. 执行生命周期阶段和绑定的插件目标
  4. 完成项目的清理、编译、测试、打包等任务

POM继承机制:

  • 子POM继承父POM的配置
  • 可以覆盖父POM中的配置项
  • 实现配置复用和标准化

Maven生命周期:

  1. clean - 清理项目
  2. default - 构建项目核心生命周期
  3. site - 生成项目站点文档

pom.xml文件基本结构

<?xml version="1.0" encoding="UTF-8"?>
<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.kihyou</groupId><artifactId>jweq</artifactId><version>1.0.0-SNAPSHOT</version><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>25</maven.compiler.source><maven.compiler.target>25</maven.compiler.target><tomcat.version>11.0.15</tomcat.version></properties><dependencies></dependencies><build><finalName>${project.artifactId}-${project.version}</finalName><plugins></plugins></build>
</project>
1. <?xml ?>
  • xml version: 指定xml版本。文件中指定xml版本为1.0.0。
  • encoding: 指定编码。文件中指定使用UTF-8 编码。
2. <project></project>
  • project:整个项目的根元素,包含了整个项目的所有配置信息。

  • xmlns:xml name space,xml命名空间,声明默认的xml命名空间(xmlns),确保 Maven 能正确解析 POM 文件中的元素。文件中遵循Maven POM 4.0.0规范。

  • xmlns:xsi:xsi,XML Schema Instance,XML Schema实例,声明xmlns中 xml schema instance(xsi)的命名空间,用于支持 XML Schema 验证的基础设施,以允许使用xsi:schemaLocation 等属性进行 Schema 验证。

  • xsi:schemaLocation:Schema 位置,指定xsi中 XML Schema 文件的位置,命名空间URI Schema文件URL 的配对形式。文件中
    第一个URL:http://maven.apache.org/POM/4.0.0 - 命名空间标识
    第二个URL:http://maven.apache.org/xsd/maven-4.0.0.xsd - 对应的 Schema 文件位置

  • modelVersion指定了当前POM模型的版本。"4.0.0",表示使用Maven 2/3/4的POM格式

  • 项目坐标信息,用于唯一标识一个Maven项目。

    坐标作用:
    - 唯一标识项目;
    - 支持依赖管理和传递;
    - 实现项目发布和共享.

    Maven坐标系统由以下元素组成:

    1. groupId:组织或公司标识,定义了项目所属的组ID:

      • 命名规范:确保全球唯一性;通常使用反向域名表示法(例如:com.company.project)。
      • 作用:标识项目的归属组织;组织和分类相关项目;避免命名冲突。
    2. artifactId:项目或模块标识,定义了项目构件ID:

      • 命名规范:使用小写字母和连字符;避免特殊字符;应该唯一(在同一groupId下)
      • 作用:标识具体的项目或模块;作为生成文件的名称基础;在依赖中引用项目。
    3. version:项目版本号,定义了项目的版本号:

      • 版本号规范:采用语义化版本控制(SemVer);格式:主版本号.次版本号.修订号(例如:1.0.0, 2.1.3-SNAPSHOT)。
      • SNAPSHOT版本:表示开发中的不稳定版本,Maven会定期检查更新,适用于持续集成环境。
    4. packaging:打包类型(可选,默认为jar),定义了项目的打包方式:
      常见打包类型:1. jar:Java应用程序库;2. war:Web应用程序归档;3. pom:聚合项目或父项目;4. ear:企业级应用程序

  • properties:定义项目属性变量。

    	属性作用:1. 避免重复配置;2. 统一版本管理;3. 简化配置维护;4. 支持条件配置使用方式:在其他地方通过${property.name}引用(例如:${project.build.sourceEncoding})
    
    • project.build.sourceEncoding:定义项目构建时使用的字符编码

    • maven.compiler.source:定义源代码的Java版本

    • maven.compiler.target:定义目标JVM的版本

    • tomcat.version:定义内嵌Apache Tomcat的版本

编码一致性要求:
1. 文件保存编码
2. 编译器编码设置
3. 运行时编码设置
4. 数据库存储编码

  • dependencies:定义项目的依赖关系。
    依赖坐标

    1. groupId:依赖库的组织标识;
    2. artifactId:依赖库的构件标识;
    3. version:依赖库的版本号;
    4. scope:依赖的作用域(可选)。

    依赖管理机制:1. 自动下载和管理第三方库;2. 解决依赖传递和冲突;3. 支持多种作用域;4. 实现依赖复用。

pom.xml文件示例

<?xml version="1.0" encoding="UTF-8"?>
<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.kihyou</groupId><artifactId>jweq</artifactId><version>1.0.0</version><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>25</maven.compiler.source><maven.compiler.target>25</maven.compiler.target><tomcat.version>11.0.15</tomcat.version></properties><dependencies><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-core</artifactId><version>${tomcat.version}</version></dependency><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><version>${tomcat.version}</version></dependency><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>6.1.0</version><scope>provided</scope></dependency><dependency><groupId>jakarta.servlet.jsp</groupId><artifactId>jakarta.servlet.jsp-api</artifactId><version>4.0.0</version><scope>provided</scope></dependency></dependencies><build><finalName>${project.artifactId}-${project.version}</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.11.0</version><configuration><release>25</release><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.3.1</version><configuration><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.3.0</version><configuration><archive><manifest><mainClass>com.kihyou.Main</mainClass></manifest></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.5.0</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.kihyou.Main</mainClass></transformer></transformers><minimizeJar>false</minimizeJar><filters><filter><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude><exclude>module-info.class</exclude><exclude>META-INF/MANIFEST.MF</exclude><exclude>META-INF/LICENSE</exclude><exclude>META-INF/LICENSE.txt</exclude><exclude>META-INF/LICENSE.md</exclude><exclude>META-INF/NOTICE</exclude><exclude>META-INF/NOTICE.txt</exclude><exclude>META-INF/NOTICE.md</exclude><exclude>META-INF/DEPENDENCIES</exclude><exclude>META-INF/web-fragment.xml</exclude></excludes></filter></filters></configuration></execution></executions></plugin><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>3.1.0</version><configuration><mainClass>com.kihyou.Main</mainClass></configuration></plugin></plugins></build>
</project>

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询