96SEO 2026-02-19 23:52 0
平台的项目管理和整合工具它将项目的开发和管理过程抽象成一个项目对象模型POM。

开发人员只需要做一些简单的配置Maven
使用标准的目录结构和默认构建生命周期因此开发者几乎不用花费多少时间就能够自动完成项目的基础构建工作。
Maven是一个特别是Java编程项目管理及自动构建工具由Apache软件基金会所提供。
基于项目对象模型缩写POM概念Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
System)和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
当你使用Maven的时候你用一个明确定义的项目对象模型来描述你的项目然后Maven可以应用横切的逻辑这些逻辑来自一组共享的或者自定义的插件。
执行一系列的有序的步骤直到到达你指定的生命周期。
遍历生命周期旅途中的一个影响就是Maven
此外Maven能够很方便的帮你管理项目报告生成站点管理JAR文件等等。
遵循最佳实践的简单项目设置数秒内即可启动新项目或模块在所有项目中使用一致意味着新开发人员无需花费更多时间来参与项目出色的依赖项管理包括自动更新依赖项关闭也称为传递依赖项能够轻松同时处理多个项目开箱即用的庞大且不断增长的依赖库并与最大的开源项目进行了安排以实时提供其最新版本可扩展能够轻松用
或脚本语言编写插件几乎无需额外配置即可立即访问新功能用于Maven之外的依赖项管理和部署的Ant任务基于模型的构建Maven能够将任何数量的项目构建为预定义的输出类型例如JARWAR无需太多额外配置Maven将与您的源代码控制系统例如Git集成并基于特定标签管理项目的发布
Maven下载地址https://maven.apache.org/download.cgi
下载地址https://maven.apache.org/download.cgi
创建位置你可以任意但是我建议你创建在桌面上因为我也是这样做的。
创建完标准结构以后我们需要一些代码和配置来帮助我们完成接下来的学习在这里你可以不理解这些代码和配置的含义。
这些代码和配置在这一章节不是重点后边会讲重点是标准结构长什么样子这些代码和配置主要是为了学习接下来的
xmlnshttp://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.xsdmodelVersion4.0.0/modelVersion!--
--groupIdcom.caochenlei/groupId!--
--artifactIdmaven-demo/artifactId!--
--version0.0.1-SNAPSHOT/version
文件包含了项目的基本信息用于描述项目如何构建声明项目依赖等等。
根元素和三个必需字段groupIdartifactIdversion。
project...dependenciesdependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.75/version/dependency......可添加多个依赖....../dependencies...
https://repo.maven.apache.org/maven2/
拼接字符串的格式仓库地址/{groupId}/{artifactId}/{version}/{artifactId}-{version}.jar
https://repo.maven.apache.org/maven2/com/alibaba/fastjson/1.2.75/fastjson-1.2.75.jar这个地址是一个网络地址你可以把它复制到浏览器地址栏中然后回车访问一下这个依赖就能下载下来了。
为了解决这些不稳定的情况国内很多知名的大公司比如阿里它们就自己创建了一个仓库相当是把
中央仓库里边所有的依赖全部拷到了他们自己的仓库中并实时更新同时向国人也开放了这个仓库的地址也就是
默认是从中央仓库去下载我们想要改变它就必须告诉他说你不要去找中央仓库了太慢了你去阿里的
C:\DevTools\apache-maven-3.3.9\conf\settings.xml
mirrorsmirroridalimaven/idmirrorOfcentral/mirrorOfnamealiyun
maven/nameurlhttp://maven.aliyun.com/nexus/content/groups/public//url/mirror
profilesprofileidjdk1.8/idactivationactiveByDefaulttrue/activeByDefaultjdk1.8/jdk/activationpropertiesmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetmaven.compiler.compilerVersion1.8/maven.compiler.compilerVersion/properties/profile
http://maven.aliyun.com/nexus/content/groups/public/com/alibaba/fastjson/1.2.75/fastjson-1.2.75.jar为了验证你也可以把这个地址粘贴到浏览器中回车看看它会不会下载。
在上边我们还提到了一个本地仓库在本地仓库中你要是想要找到这个依赖也是遵循
C:/Users/CaoChenLei/.m2/repository/com/alibaba/fastjson/1.2.75/fastjson-1.2.75.jarC:/Users/{自己的用户名}/.m2/repository/
当然现在的你可找不到这个文件甚至目录因为在上边我们只是讲解了依赖是怎么下载的。
project...dependenciesdependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.75/version/dependency.../dependencies...
http://maven.aliyun.com/nexus/content/groups/public/com/alibaba/fastjson/1.2.75/fastjson-1.2.75.jar中央仓库
官方的、最大的依赖第三方开源项目、工具、框架、插件等等存放仓库但是国内用户访问速度慢
阿里仓库也称为远程仓库它是中央仓库的一份实时拷贝访问速度快建议使用此仓库
下载依赖后用于存放依赖的地方在项目的依赖管理中首先去本地仓库中查找本地仓库中有则使用没有则下载然后存放到本地仓库中避免每一次都下载浪费网络带宽
依赖搜索网站https://mvnrepository.com/
dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.75/version!--
设置依赖范围主要可取值compile、test、provided默认不配就是compile
dependencygroupIdcom.hello/groupIdartifactIdhello/artifactIdversion0.0.1-SNAPSHOT/version!--
--exclusionsexclusiongroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactId/exclusion/exclusions
dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.0/versionscopetest/scope
使用继承机制就可以将这样的依赖信息统一提取到父工程模块中进行统一管理。
--groupId.../groupIdartifactIdParent/artifactIdversion0.0.1-SNAPSHOT/version!--
指定从当前子工程的pom.xml文件出发查找父工程的pom.xml的路径
--relativePath../Parent/pom.xml/relativePath
dependencyManagementdependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.9/versionscopetest/scope/dependency/dependencies
dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactId/dependency
-Dexec.mainClass主程序入口类不需要拓展名在存在参数的情况下运行mvn
-DarchetypeArtifactIdmaven-archetype-quickstart
-Dexec.mainClasspackageName.App
-DarchetypeArtifactIdmaven-archetype-webapp
-DinteractiveModefalse4.13、项目转化
源程序编译为字节码文件。
测试针对项目中的关键点进行测试确保项目在迭代开发过程中关键点的正确性在每次测试后以标准格式记录和展示测试结果。
打包将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。
Java
compile、test、package、install、deploy
build)项目部署的处理site项目站点文档创建的处理一般不用所以生命周期没提
默认会采用自身所定义的插件来执行各个阶段也就是说即使你不配置这些插件它也能够正常运行。
但是你要是配置了某一阶段的一个插件他就会采用你所配置的插件来进行运行。
除了一些不在生命周期内的插件而我们需要使用则需要单独配置接下里就会告诉大家有哪些常见插件。
在根标签内添加以下代码插件名和版本仅供参考具体添加什么插件取决于你。
--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.2/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/plugin....../plugins
--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-resources-plugin/artifactIdversion3.0.1/versionconfigurationencodingUTF-8/encoding/configuration/plugin/plugins
buildresourcesresourcedirectorysrc/main/java/directoryincludesinclude**/*.properties/includeinclude**/*.xml/includeinclude**/*.conf/include/includesfilteringfalse/filtering/resourceresourcedirectorysrc/main/resources/directoryincludesinclude**/*.properties/includeinclude**/*.xml/includeinclude**/*.conf/include/includesfilteringfalse/filtering/resource/resources
jdk1.3除了配置maven安装目录/config/settings.xml文件也可以使用
--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.2/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/plugin/plugins
插件描述该插件允许用户整合项目的输出包括依赖、模块、网站文档和其他文档到一个单独的文件即可用定制化打包。
--pluginartifactIdmaven-assembly-plugin/artifactIdconfigurationdescriptorRefsdescriptorRefjar-with-dependencies/descriptorRef/descriptorRefsarchivemanifestmainClass主程序类全路径/mainClass/manifest/archive/configurationexecutionsexecutionidmake-assembly/idphasepackage/phasegoalsgoalsingle/goal/goals/execution/executions/plugin/plugins
--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-source-plugin/artifactIdexecutionsexecutionidattach-sources/idgoalsgoaljar/goal/goals/execution/executions/plugin/plugins
--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-dependency-plugin/artifactIdversion2.6/versionexecutionsexecutionidcopy-dependencies/idphasecompile/phasegoalsgoalcopy-dependencies/goal/goalsconfiguration!--
${project.build.directory}为Maven内置变量缺省为target
--outputDirectory${project.build.directory}/lib/outputDirectory!--
--excludeTransitivefalse/excludeTransitive!--
--stripVersiontrue/stripVersion/configuration/execution/executions/plugin/plugins
插件名称maven-jetty-plugin插件作用可以让项目直接用
plugingroupIdorg.mortbay.jetty/groupIdartifactIdjetty-maven-plugin/artifactIdversion8.1.16.v20140903/version!--
--configurationconnectorsconnector
implementationorg.eclipse.jetty.server.nio.SelectChannelConnectorport8080/port/connector/connectorsscanIntervalSeconds10/scanIntervalSeconds/configuration
插件名称tomcat7-maven-plugin插件作用可以让项目直接用
plugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.2/version!--
--configurationpath//pathport8080/porturiEncodingUTF-8/uriEncoding/configuration
#用户可以使用该属性引用POM文件中对应元素的值常用的POM属性包括
${project.build.sourceDirectory}项目的主源码目录默认为
${project.build.testSourceDirectory}项目的测试源码目录默认为
${project.build.directory}项目构件输出目录默认为
${project.outputDirectory}项目主代码编译输出目录默认为
${project.testOutputDirectory}项目测试代码编译输出目录默认为
${project.build.fianlName}项目打包输出文件的名称。
默认为${project.artifactId}-${project.version}#获取环境变量属性所有环境变量都可以使用以env.开头的Maven属性引用
${env.xxx}获取系统环境变量#获取Settings属性用户使用settings.开头的属性引用
${settings.xxx}获取settings.xml中对应元素的值
project...properties变量名变量值/变量名/properties...
project...propertiesjunit.version3.8.1/junit.version/propertiesdependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/versionscopetest/scope/dependency/dependencies...
时间一场随着项目开发的越来越大这些文件和层次越来越多放到一个工程中也越来越难管理。
层可能不止这一个项目用到了其他项目也有可能用到以前的所有代码放到一个工程中你在抽取的时候会很麻烦。
现在经过模块化划分之后各个层次结构之间可以相互依赖大大提高了项目的开发进度。
值得一提的是模块与模块之间可以相互依赖由父工程进行所有依赖版本的管理减少了开发中很多不必要的工作。
模块化开发是在依赖继承的基础上进行的所以你有必要去了解一下依赖继承。
是一个仓库管理器它极大地简化了本地内部仓库的维护和外部仓库的访问。
的官方或者国内的镜像获取但是这都不是最好的方案假如在同一个环境内一个团队的多个开发人员同样的依赖都要从远程获取一遍从网络方面来说这是非常耗时的。
这时候就需要在局域网内部署一个
Mavenapt、yum、gradle、pypi、docker
访问远程的仓库地址所以很有必要在局域网里找一台有外网权限的机器搭建
下载地址https://www.sonatype.com/products/repository-oss-download
C:\DevTools\nexus-3.25.0-03-win64首先进入
宿主仓库主要用于部署无法从公共仓库获取的构件以及自己或第三方的项目构件
通过仓库组统一管理多个仓库这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。
maven-releases这里存放我们自己项目中发布的构建通常是
版本的也就是正式版。
maven-snapshots这个仓库非常的有用它的目的是让我们可以发布那些非
包这里以常用的ojdbc6-11.2.0.4.jar为例当然你可以任选
包在私服中没有他就会自动连接远程仓库进行下载这不是我们希望的结果我们希望它去阿里
阿里仓库地址https://developer.aliyun.com/mvn/guide
--serveridreleases/idusernameadmin/usernamepasswordadmin123/password/server!--
--serveridsnapshots/idusernameadmin/usernamepasswordadmin123/password/server
mirrorsmirroridnexus/idmirrorOf*/mirrorOfnamenexus
maven/nameurlhttp://127.0.0.1:8081/repository/maven-public//url/mirror
distributionManagementrepositoryidreleases/idnamemaven-releases/nameurlhttp://127.0.0.1:8081/repository/maven-releases//urluniqueVersiontrue/uniqueVersion/repositorysnapshotRepositoryidsnapshots/idnamemaven-snapshots/nameurlhttp://127.0.0.1:8081/repository/maven-snapshots//urluniqueVersiontrue/uniqueVersion/snapshotRepository
/distributionManagement10.6、发布项目到私服
version0.0.1-releases/version就会发布到
version0.0.1-snapshots/version就会发布到
到私服快照仓库为例演示。
以下命令是一行为了方便阅读我特意换了行请注意
-DgroupIdcom.oracle.database.jdbc
-DfileC:\developlib\ojdbc6-11.2.0.4.jar
-Durlhttp://localhost:8081/repository/maven-snapshots/
-DrepositoryIdsnapshots10.8、安装依赖到本地
到本地仓库为例演示。
以下命令是一行为了方便阅读我特意换了行请注意
-DgroupIdcom.oracle.database.jdbc
-DfileC:\developlib\ojdbc6-11.2.0.4.jar
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback