`
roadrunner
  • 浏览: 17068 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
文章分类
社区版块
存档分类
最新评论

Maven dependency and repository (part b)

阅读更多
Repository介绍
 
Artifact Repositories
Repository就是用来存储artifacts and dependencies(实质也就是artifact)的地方。
2种类型的repositories: local and remotelocal repository里存储了因有使用需要而从remote repository下载的artifacts cache,还存储了你在本地build的,但还没有发布到remote repositoryartifacts
Remote repositories能够被accessed by 各种协议(如file:// and http://)。Remote repositories可以是真正供所有人都可以进入的repositorie(例如:Maven's central repository  repo1.maven.org就是典型例子),也可以是一个build在你公司内部http serverinternal repositories,它只在你们的开发团队里共享。
The local and remote repositories的结构是相同的,但作为maven的使用者,我们不需要去深入了解它的结构。
 
Why not Store JARs in CVS?
Maven强烈建议不要在你的project里包含任何要引用的JARs,即project不要存储这些jars,而应该定义对这些jarsdependency。例如,很多的project都会使用到一些常用的jar(如junit, XML parsersstandard utilities),你不要把他们的jar都放入你的project里,而应该使用它们的dependencies
这些dependencies存储在local repositoty里可以供成千上万个project使用,其好处有:
·         It uses less storage每个JAR只存储在repository一个地方,所有的project如果要使用它就定义它的dependency即可,节约了空间,同时也使你的project cleaner
·         It makes checking out a project quicker - initial checkout, and to a small degree updating, a project will be faster if there are no large binary files in CVS. While they may need to be downloaded again afterwards anyway, this only happens once and may not be necessary for some common JARs already in place.
·         No need for versioning – CVS and other source control systems are designed for versioning files, but external dependencies typically don't change, or if they do their filename changes anyway to indicate the new version. Storing these in CVS doesn't have any added benefit over keeping them in a local artifact cache.
 
Using Repositories
通常,你不需要对local repository做任何事,除非你想重新download所有的artifact而清空local repository
而对于remote repositories, 它们是用来download and upload artifact (当然,你必须有权限才可以操作).
Downloading from a Remote Repository
当一个project定义的dependency local repository里找不到,或者remote repository包含了新版本时,就会激活Download the dependency from remote repository的操作。
缺省情况下,会从maven central repository (http://repo1.maven.org/maven2 ) 下载。如果你还希望能够从其他的remote repository下载(比如要下载只供你们team使用的artifact),你需要在POM.XML里做下列设置:
<project>
 ...
 <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>http://myserver/repo</url>
    </repository>
 </repositories>
 ...
</project>
上述设置也可以在settings.xml
Using Mirrors for the Central Repository
就象web server一样,central repository有时也会down机。如果这种情况发生了,你可以在settings.xml 里设置 <mirrors> element详见Using Mirrors for Repositories .
 
Build Offline
如果你在使用maven build project时你的电脑无法连上网,那么你可以在mvn命令里添加-o参数
 mvn -o package
但要注意:许多plugins在设置为offline的情况下不会执行任何需要连接上网的操作,就会导致失败。
 
Internal Repositories
 
对于团队合作开发的project,建一个internal repository,使得团队成员能够共享、下载、上传最新的artifact,是非常必要的。internal repository并没有什么特别,它实际上就是一个remote repository
团队成员可以使用HTTP or the file system (using a file:// URL)的方式从internal repository下载artifact,也可以使用 SCP, FTP, or a file copy的方式上传artifactinternal repository
分享到:
评论

相关推荐

    maven-repository仓库

    maven仓库所需要的jar包,包含完整的内容,可以去看一下简绍(https://blog.csdn.net/Fly_tom/article/details/81874197),由于csdn网站上传文件的限制,这个只是一部分,另一部分:...

    Maven增加自定义repository

    本文将详细介绍如何在Maven中增加自定义的repository。 首先,`settings.xml`是Maven的配置文件,位于用户目录下的`.m2`文件夹中(例如在Windows系统上是`%USER_HOME%\.m2\settings.xml`)。这个文件包含了Maven的...

    Apache Maven Dependency Management

    If you are working with Java or Java EE projects and you want to take advantage of Maven dependency management, then this book is ideal for you. This book is also particularly useful if you are a ...

    maven_repository .zip

    Maven框架,本地jar资源仓,中央仓下载jar资源 有时在你的构建过程中,需要将第三方jar包添加到本地仓库中,因为它并存在于像Maven中央仓库或其它的公共仓库中。为了让Maven能够正确获取到jar包,第三方jar包必须...

    maven-repository-metadata-3.0.jar

    maven-repository-metadata-3.0.jar

    maven-dependency-plugin-2.8.jar

    maven-dependency-plugin-2.8.jar

    Maven的Dependency详解

    《Maven的Dependency详解》 在软件开发过程中,依赖管理是一项关键任务,尤其是在Java领域,Maven通过其强大的依赖管理...通过理解Dependency的配置和Repository的工作原理,开发者可以更好地利用Maven进行软件开发。

    Maven repository.part1

    Maven repository.part1 for Java RESTful Web Service实战第二章需要的Mave库

    maven3.3.9+repository.zip

    "maven3.3.9+repository.zip" 提供的可能是 Maven 3.3.9 版本对应的仓库资源,这些资源包括了大量的第三方库,使得开发者无需手动管理依赖。 ** Maven 本地仓库 ** 本地仓库是每个开发者机器上默认的 Maven 存储...

    doris-1.1.3源码编译broker-maven依赖包repository

    《Doris 1.1.3 源码编译 Broker Maven 依赖包 Repository 深度解析》 Apache Doris 是一个高性能、分布式、在线分析处理(OLAP)的数据仓库系统,它提供了快速的数据查询能力,适用于大规模数据的实时分析。在Doris...

    maven-dependency-plugin-2.8.zip

    本文将聚焦于"Maven依赖插件"(maven-dependency-plugin)的版本2.8及其在开源项目中的应用,特别是结合Cobertura插件进行代码覆盖率检查。 Maven依赖插件(maven-dependency-plugin)是Maven生态系统中的一个重要...

    Maven的Dependency测试

    **Maven的Dependency测试** 在Java开发中,Maven是一个不可或缺的构建工具,它通过管理项目的依赖关系,简化了项目的构建、编译和部署过程。本文将深入探讨Maven的Dependency测试方面,帮助开发者理解如何有效地...

    maven_repository.rar

    5. Maven Repository 的作用 - 自动化依赖管理:Maven 通过仓库自动解决依赖关系,避免手动下载和管理 JAR 文件。 - 版本控制:仓库中的每个库都有版本号,便于版本控制和回滚,确保项目稳定。 - 代码复用:通过...

    解决IDEA中maven添加dependency过慢的问题

    我们在IDEA的安装目录下找到 /plugins/maven/lib/maven2/conf 或者 /plugins/maven/lib/maven3/conf目录(如果两个都有建议都改掉),向其中的setting.xnl文件中的/标签下添加如下的仓库地址(这里以阿里云为例): ...

    maven-repository仓库(2)

    这个是maven的另一个部分jar,可以去看一下简绍(https://blog.csdn.net/Fly_tom/article/details/81874197),把这个文件下载完成,需要把它解压到maven-repository中的org文件下,一定是要点击右键解压到当前...

    maven repository

    使用`mvn dependency:purge-local-repository`命令可以帮助清理这些无用的文件。 8. 仓库管理工具 对于大型企业,可能需要使用如Nexus或Artifactory这样的仓库管理工具,它们不仅可以作为私有远程仓库,还提供了...

    maven-repository 包

    【maven-repository 包】是一个集合了众多Java开发所需的Maven依赖的资源库,它极大地简化了开发者在构建项目时寻找和管理依赖的过程。在Java开发中,Maven是一个广泛应用的项目管理和集成工具,它负责管理项目的...

    maven-repository.zip

    本篇文章将围绕"Maven-repository.zip"这个压缩包,深入探讨Maven的本地仓库、Maven安装以及项目模板的使用。 首先,我们来关注"Maven的本地仓库",即压缩包中的"repository.rar"。Maven的仓库是存储项目依赖的地方...

    Maven repository.part2

    Maven repository.part1 for Java RESTful Web Service实战第二章需要的Mave库

    maven-dependency-helper

    Maven Dependency Helper安装Settings -&gt; Plugins -&gt; Marketplace, 搜索"Maven Dependency Helper"Settings -&gt; Plugins -&gt; Install plugin from disk快捷键Ctrl+Shift+D演示查询某一个依赖的版本信息通过搜索框搜索...

Global site tag (gtag.js) - Google Analytics