2026/6/10 18:02:14
网站建设
项目流程
网站后台显示连接已重置,如何做网站来做淘宝客,网站开发方法 优帮云,珠海网站建设开发pom.xml
简介
pom.xml 文件是 Maven 项目的核心配置文件#xff0c;全称是 “Project Object Model”(项目对象模型)。包含了项目的各种配置信息#xff0c;如依赖管理、构建过程、插件配置等。Maven 使用 pom.xml 来管理和构建项目。
每个 Maven 项目都有且仅有一个 pom.xml…pom.xml简介pom.xml 文件是 Maven 项目的核心配置文件全称是 “Project Object Model”(项目对象模型)。包含了项目的各种配置信息如依赖管理、构建过程、插件配置等。Maven 使用 pom.xml 来管理和构建项目。每个 Maven 项目都有且仅有一个 pom.xml 文件它是 Maven 工作的基础。主要功能:1.项目基本信息groupId项目的组ID通常是公司或组织的域名反写。artifactId项目的唯一标识符通常是项目的名称。version项目的版本号。packaging项目的打包方式常见的有 jar、war 等。2.依赖管理dependencies定义项目所需的外部库和它们的版本。dependencyManagement集中管理依赖的版本子模块可以直接引用而不需要指定版本。3.构建配置build配置项目的构建过程包括编译、测试、打包等。plugins定义构建过程中使用的插件及其配置。4.属性配置properties定义一些常用的属性如 Java 版本、编码等。5.仓库配置repositories定义从哪里下载依赖。distributionManagement定义发布构件的位置。6.模块管理modules多模块项目中定义子模块。pom.xml 详细讲解1. pom.xml 基本结构一个典型的 pom.xml 文件具有如下基本结构?xml version1.0 encodingUTF-8?projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd!-- 模型版本 --modelVersion4.0.0/modelVersion!-- 项目坐标 --groupIdcom.example/groupIdartifactIdmy-app/artifactIdversion1.0.0/versionpackagingjar/packaging!-- 项目信息 --nameMy Application/namedescriptionA sample Maven project/descriptionurlhttp://www.example.com/url!-- 属性定义 --propertiesmaven.compiler.source11/maven.compiler.sourcemaven.compiler.target11/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/properties!-- 依赖管理 --dependencies!-- 依赖项定义 --/dependencies!-- 构建配置 --build!-- 插件配置 --plugins!-- 插件定义 --/plugins/build/project2. 项目坐标详解Maven 使用一组坐标来唯一标识一个项目这些坐标组成了项目的地址。2.1 groupId组ID通常表示项目所属的组织或公司推荐使用反向域名的方式命名例如com.google、org.apache示例groupIdcom.company.project/groupId2.2 artifactId构件ID项目的唯一标识符通常与项目名称相同示例artifactIdmy-webapp/artifactId2.3 version版本号项目的版本信息快照版本以-SNAPSHOT结尾示例version1.0.0/version或version2.1.0-SNAPSHOT/version2.4 packaging打包方式指定项目的打包类型常见jar默认、war、pom、ear等示例packagingwar/packaging3. 属性Properties属性提供了在 POM 中其他地方可以引用的占位符值。properties!-- 项目源码编码 --project.build.sourceEncodingUTF-8/project.build.sourceEncoding!-- Java 版本 --maven.compiler.source11/maven.compiler.sourcemaven.compiler.target11/maven.compiler.target!-- 依赖版本管理 --junit.version5.8.2/junit.versionspring.version5.3.21/spring.version/properties引用方式${property.name}例如${junit.version}4. 依赖管理Dependencies依赖管理是 Maven 最核心的功能之一它自动处理项目所需的第三方库。4.1 基本依赖结构dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependency/dependencies4.2 依赖范围ScopeScope描述编译classpath测试classpath运行classpath示例compile默认值编译和运行都需要YYYSpring Coreprovided编译和测试需要运行时由容器提供YYNServlet APIruntime编译不需要运行时需要NYYJDBC Drivertest仅测试时需要NYNJUnitsystem类似 provided需指定本地路径YYN本地 jar 包4.3 依赖传递Maven 支持依赖传递机制当项目 A 依赖 BB 依赖 C则 A 自动依赖 C可以通过 exclusions 排除不需要的传递依赖dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion5.3.21/versionexclusionsexclusiongroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactId/exclusion/exclusions/dependency5. 依赖管理Dependency Management用于统一管理依赖版本常用于父 POMdependencyManagementdependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependency/dependencies/dependencyManagement子模块只需声明 groupId 和 artifactId版本会从父 POM 继承。6. 构建配置Build构建配置控制项目的编译、测试、打包等过程。6.1 基本构建配置build!-- 项目最终名称 --finalNamemyapp/finalName!-- 源码目录 --sourceDirectorysrc/main/java/sourceDirectory!-- 资源目录 --resourcesresourcedirectorysrc/main/resources/directoryfilteringtrue/filtering/resource/resources!-- 测试源码目录 --testSourceDirectorysrc/test/java/testSourceDirectory!-- 输出目录 --outputDirectorytarget/classes/outputDirectorytestOutputDirectorytarget/test-classes/testOutputDirectory/build6.2 插件管理buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.10.1/versionconfigurationsource11/sourcetarget11/target/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-surefire-plugin/artifactIdversion3.0.0-M7/versionconfigurationskipTestsfalse/skipTests/configuration/plugin/plugins/build6.3 插件管理Plugin Management类似于依赖管理用于统一插件版本pluginManagementpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.10.1/version/plugin/plugins/pluginManagement7. 继承与聚合7.1 继承Parent子项目可以从父项目继承配置parentgroupIdcom.example/groupIdartifactIdparent-project/artifactIdversion1.0.0/versionrelativePath../parent/pom.xml/relativePath/parent7.2 聚合Modules一个项目可以聚合多个子模块modulesmodulemodule-a/modulemodulemodule-b/modulemodulemodule-c/module/modules8. Profiles环境配置Profiles 允许根据不同的环境激活不同的配置profilesprofileiddev/idpropertiesdatabase.urljdbc:mysql://localhost:3306/dev/database.url/propertiesactivationactiveByDefaulttrue/activeByDefault/activation/profileprofileidprod/idpropertiesdatabase.urljdbc:mysql://prod-server:3306/prod/database.url/properties/profile/profiles激活方式命令行mvn clean install -P prod环境变量MAVEN_ARGS-P prod9. 常用 Maven 命令命令功能说明mvn clean清理编译结果mvn compile编译项目mvn test运行测试mvn package打包项目mvn install安装到本地仓库mvn deploy发布到远程仓库mvn site生成项目站点文档mvn dependency:tree显示依赖树