`

maven相关

 
阅读更多
src               源代码和测试代码的根目录
  main            应用代码的源目录
    Java          源代码
    resources     项目的资源文件
test              测试代码的源目录
    java          测试代码
    resources     测试的资源文件
target            编译后的类文件、jar文件等

1、DepencyManagement
    在我们项目顶层的POM文件中,我们会看到dependencyManagement元素。通过它元素来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到父类找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。
    这样做的好处:统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,才能保证测试的和发布的是相同的成果,因此,在顶层pom中定义共同的依赖关系。同时可以避免在每个使用的子项目中都声明一个版本号,这样想升级或者切换到另一个版本时,只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个版本号时,只需要在dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。
2、Dependencies
      相对于dependencyManagement,所有生命在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。
3、dependencies与dependencyManagement区别
     dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)
     dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

mvn dependency:analyze
查找出在编译和测试中未使用但显示声明的依赖


Remote Repository主要有3种: (远程仓储)

中央仓库:http://repo1.maven.org/maven2/
私服:内网自建的maven repository,其URL是一个内部网址
其他公共仓库:其他可以互联网公共访问maven repository,例如 jboss repository等

repository里存放的都是各种jar包和maven插件。当向仓库请求插件或依赖的时候,会先检查local repository,如果local repository有则直接返回,否则会向remote repository请求,并缓存到local repository。也可以把做的东西放到本地仓库,仅供本地使用;或上传到远程仓库,供大家使用。


Mirror
mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。

<mirrorOf></mirrorOf>
<mirrorOf></mirrorOf>标签里面放置的是要被镜像的Repository ID。为了满足一些复杂的需求,Maven还支持更高级的镜像配置:
<mirrorOf>*</mirrorOf>
            匹配所有远程仓库。
<mirrorOf>repo1,repo2</mirrorOf>
            匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
<mirrorOf>*,!repo1</miiroOf>
            匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。

Repository与Mirror
定义
其实,mirror表示的是两个Repository之间的关系,在maven配置文件(setting.xml)里配置了<mirrors><mirror>..........</mirror></mirrors>,即定义了两个Repository之间的镜像关系。

配置两个Repository之间的镜像关系(Mirror)目的
配置两个Repository之间的镜像关系,一般是出于访问速度和下载速度考虑。
例如, 有一个项目,需要在公司和住所都编码,并在项目pom.xml配置了A Maven库。在公司,是电信网络,访问A库很快,所以maven管理依赖和插件都从A库下载;在住所,是网通网络,访问A库很慢,但是访问B库很快。这时,在住所的setting.xml里,只要配置一下<mirrors><mirror>....</mirror></mirrors>,让B库成为A库的mirror,即可不用更改项目pom.xml里对于A库的相关配置。

如果该镜像仓库需要认证,则配置setting.xml中的<server></server>即可。

注意

需要注意的是,由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。

4、私服
私服是一种特殊的远程Maven仓库,它是架设在局域网内的仓库服务,私服一般被配置为互联网远程仓库的镜像,供局域网内的Maven用户使用。
当Maven需要下载构件的时候,先向私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,同时缓存在私服之上,然后为Maven下载请求提供下载服务,另外,对于自定义或第三方的jar可以从本地上传到私服,供局域网内其他maven用户使用。

私服优点主要有:
节省外网宽带
加速Maven构建
部署第三方构件
提高稳定性、增强控制:原因是外网不稳定
降低中央仓库的负荷:原因是中央仓库访问量太大




  • 大小: 4.9 KB
  • 大小: 51.8 KB
  • 大小: 20.1 KB
  • 大小: 20.1 KB
分享到:
评论

相关推荐

    maven相关书籍及安装步骤

    这时可以查看日志信息,使用 `mvn dependency:tree` 查看依赖树,或者搜索 Maven 社区或 Stack Overflow 上的相关解决方案。 总之,Maven 是 Java 开发中的重要工具,能够帮助开发者有效地管理项目构建,提高开发...

    maven相关工具介绍

    【标题】:“maven相关工具介绍” 【描述】:“包含如下文件:hudson-V1.doc,maven-definitive-guide_zh.pdf,Maven技术分享.ppt,全面介绍Maven” 【标签】:“maven 介绍” 【压缩包子文件的文件名称列表】:...

    maven相关资料

    ### Maven相关资料详解 #### Maven概述 Maven是一款强大的项目管理和综合工具,旨在提供软件开发者一个构建项目的完整生命周期框架。其核心价值在于自动化构建过程、标准化项目结构与配置,以及简化依赖管理等任务...

    maven相关知识点总结

    maven相关知识点总结

    mavenjar包

    ** Maven Jar 包详解 ** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过统一的配置管理,简化了项目的构建、依赖管理和部署过程。在Java开发中,Maven 可以帮助我们生成 JAR 文件,这是一...

    使用eclipse构建maven

    在项目的右键菜单中,你可以找到与Maven相关的各种操作,如"Update Project Configuration"、"Run As" -&gt; "Maven Build"等。 总结来说,通过Eclipse集成Maven,开发者能够在一个统一的环境中完成项目的构建、管理和...

    eclipse中Maven相关配置

    eclipse中maven相关配置 可以参考此文档来进行相关配置

    maven3.3.9及相关eclipse插件

    在我们的文件列表中,`maven3-plugin`可能指的是与 Maven 相关的一系列插件。这些插件可以执行诸如资源复制、测试报告生成、代码覆盖率分析、JAR包创建、WAR包打包、站点发布等任务。例如,`maven-resources-plugin`...

    maven相关.docx

    ** Maven 知识详解** Maven 是一个Java项目管理和综合工具,它可以帮助开发者构建、管理和部署项目。Maven 使用一种标准化的项目对象模型(Project Object Model,POM),通过POM来描述项目的配置信息,包括依赖...

    maven-bdy-maven本地离线安装包.zip

    标题 "maven-bdy-maven本地离线安装包.zip" 提供的信息表明,这是一个与Maven相关的本地离线安装包,可能包含Maven的配置文件、库文件以及一些自定义的构建工具。描述 "maven-bdy-maven本地离线安装包" 重申了这个...

    关于MAVEN仓库服务器的安装与一些maven相关配置

    文档总结了搭建maven私服管理器nexus时遇到的一些问题,建议各位使用nexus2.*版本; 文档描述了pom以及setting的一些配置

    Myeclipse maven插件下载

    - 返回"MyEclipse" -&gt; "Install/Update",点击"Check for Updates"检查并安装Maven相关插件。 - 安装完成后,重启MyEclipse,就可以在"Preferences"中看到"Maven"相关的配置选项了。 4. 使用Maven插件: - 创建...

    maven安装与使用

    - 在`File`菜单中选择`New Project`,输入过滤条件`maven`,若能看到Maven相关的选项,则表示安装成功。 **3. 配置Eclipse使用外部Maven** - 通过`Windows` -&gt; `Preferences` -&gt; `Maven` -&gt; `Installations`来指定...

    apache-maven-3.6.3-bin111.zip

    标签"maven"进一步确认了我们讨论的是与Maven相关的主题。 在压缩包内部,"apache-maven-3.6.3"这个文件夹通常包含以下主要内容: 1. **bin**:这个目录包含Maven的可执行脚本,如`mvn`(Windows)和`mvn.sh`...

    maven的安装文档和myeclipse中maven的插件安装

    1. **删除内置插件**:关闭 MyEclipse,然后进入 MyEclipse 的安装目录,找到并删除 features 和 plugins 目录下的 Maven 相关文件或文件夹。 2. **修改 eclipse.ini**:在 MyEclipse 的启动配置文件 `eclipse.ini`...

    IDEA11 Maven3快速入门及应用

    5. **设置Maven相关配置**,可以勾选Override来自定义配置,如果已经在`settings.xml`中配置,则可以直接跳过,点击Next。 6. **点击Finish**完成创建,此时可以选择**Import Changes Enable Auto-Import**以使Maven...

    apache-maven-3.3.3-bin.rar

    Apache Maven 是一个强大的项目管理工具,它主要用于Java项目的构建、依赖管理和项目信息管理。Maven 使用一种标准化的项目...同时,随着更多maven相关组件的提供,开发者可以更全面地利用Maven进行项目管理和构建。

    eclipse安装maven插件

    这将显示一系列与Maven相关的插件,其中最常用的是"M2E - Maven Integration for Eclipse"。 4. **选择并安装M2E插件**:找到"M2E - Maven Integration for Eclipse"插件,点击“Install”按钮。阅读并接受许可证...

    maven集成于eclipse

    安装完成后,可以在`File` -&gt; `New` -&gt; `Other`中看到Maven相关的选项。 ### 2. 构建Maven项目 #### (1) 创建简单Maven项目 创建一个基本的Maven项目,点击`File` -&gt; `New` -&gt; `Other` -&gt; `Maven` -&gt; `Maven ...

    maven打包出错解决办法,亲测绝对可以!

    在开发Java项目时,Maven是一个非常重要的构建工具,它帮助我们管理依赖、构建项目以及自动化测试。然而,有时候在使用Maven进行打包操作时,可能会遇到各种问题...希望这些内容能对你在处理Maven相关问题时提供帮助。

Global site tag (gtag.js) - Google Analytics