`
chyou1988
  • 浏览: 7312 次
社区版块
存档分类
最新评论

maven仓库

 
阅读更多

仓库的分类

远程仓库,本地仓库

当maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。如果本地仓库和远程仓库都没有需要的构件,maven就会报错

私服

是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库内部的项目还能部署到私服上供其他项目使用

远程仓库的默认配置

${M2_HOME}/lib/maven-2.0.10-uber.jar ,打开该文件,能找到超级POM:

\org\apache\maven\project\pom-4.0.0.xml ,它是所有Maven POM的父POM,所有Maven项目继承该配置,你可以在这个POM中发现如下配置:

 

<repositories>  
  <repository>  
    <id>central</id>  
    <name>Maven Repository Switchboard</name>  
    <layout>default</layout>  
    <url>http://repo1.maven.org/maven2</url>  
    <snapshots>  
      <enabled>false</enabled>  
    </snapshots>  
  </repository>  
</repositories> 

上为超级POM配置了ID为central的远程仓库,如果pom.xml中未配置仓库,默认的将使用这个central的超级仓库。

最后需要注意的是snapshots元素,其子元素enabled的值为false,表示不从该中央仓库下载快照版本的构件

本地仓库

 手动创建本地仓库的存放路径,例如:D:\Java\m2\repository; 
  修改Maven安装目录下的 conf/文件夹内的setting.xml文件

<settings>
	<localRepository>D:\java\repository\</localRepository>
</settings>

 将上一步修改好的setting.xml文件复制到D:\Java\m2\repository目录下一份;

在POM中配置远程仓库

<project>  
...  
  <repositories>  
    <repository>  
      <id>maven-net-cn</id>  
      <name>Maven China Mirror</name>  
      <url>http://maven.net.cn/content/groups/public/</url>  
      <releases>  
        <enabled>true</enabled>  
      </releases>  
      <snapshots>  
        <enabled>false</enabled>  
      </snapshots>  
    </repository>  
  </repositories>  
  <pluginRepositories>  
    <pluginRepository>  
      <id>maven-net-cn</id>  
      <name>Maven China Mirror</name>  
      <url>http://maven.net.cn/content/groups/public/</url>  
      <releases>  
        <enabled>true</enabled>  
      </releases>  
      <snapshots>  
        <enabled>false</enabled>  
      </snapshots>      
    </pluginRepository>  
  </pluginRepositories>  
...  
</project>

 pluginRepositories:maven从何处下载插件

setting.xml中配置远程仓库

setting.xml不直接支持 这两个元素。利用profile配置仓库

<settings>  
  ...  
  <profiles>  
    <profile>  
      <id>dev</id>  
      <!-- repositories and pluginRepositories here-->  
    </profile>  
  </profiles>  
  <activeProfiles>  
    <activeProfile>dev</activeProfile>  
  </activeProfiles>  
  ...  
</settings>

 使用profile为settings.xml添加仓库提供了一种用户全局范围的仓库配置。

镜像使用

拦截仓库的访问到镜像下的地址,常用与配置私服,拦截所有的请求到私服地址

<settings>  
...  
  <mirrors>  
    <mirror>  
      <id>maven-net-cn</id>  
      <name>Maven China Mirror</name>  
      <url>http://maven.net.cn/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>  
    </mirror>  
  </mirrors>  
...  
</settings>

 

<settings>  
...  
  <mirrors>  
    <mirror>  
      <id>my-org-repo</id>  
      <name>Repository in My Orgnization</name>  
      <url>http://192.168.1.100/maven2</url>  
      <mirrorOf>*</mirrorOf>  
    </mirror>  
  </mirrors>  
...  
</settings>

分发构件到远程仓库

mvn install 会将项目生成的构件安装到本地Maven仓库

mvn deploy 用来将项目生成的构件分发到远程Maven仓库。

本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件

<project>    
  ...    
  <distributionManagement>    
    <repository>    
      <id>nexus-releases</id>    
      <name>Nexus Release Repository</name>    
      <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>    
    </repository>    
    <snapshotRepository>    
      <id>nexus-snapshots</id>    
      <name>Nexus Snapshot Repository</name>    
      <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>    
    </snapshotRepository>    
  </distributionManagement>    
  ...    
</project>

 一般来说,分发构件到远程仓库需要认证,如果你没有配置任何认证信息,你往往会得到401错误。这个时候,如下在settings.xml中配置认证信息:

<settings>    
  ...    
  <servers>    
    <server>    
      <id>nexus-releases</id>    
      <username>admin</username>    
      <password>admin123</password>    
    </server>    
    <server>    
      <id>nexus-snapshots</id>    
      <username>admin</username>    
      <password>admin123</password>    
    </server>      
  </servers>    
  ...    
</settings>

 

 

分享到:
评论

相关推荐

    Maven很Maven仓库

    【Maven很Maven仓库】这个标题暗示了讨论的核心是关于Maven以及它与Maven仓库的关系。Maven是一个在Java开发中广泛使用的项目管理和综合工具,它通过一个声明式的配置来管理项目的构建、报告和文档。Maven仓库则是...

    超全面搭建Maven仓库

    ### 超全面搭建Maven仓库 Maven是一款强大的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。本文将详细介绍如何搭建Maven环境、配置Maven仓库以及在Eclipse中集成Maven。 #### 一、下载安装Maven...

    maven仓库清理命令

    maven仓库清理命令

    settings.xml,本地maven仓库配置

    settings.xml,本地maven仓库配置,注意:D:\maven\repository为我本地的maven仓库路径,改成你的。 settings.xml,本地maven仓库配置,注意:D:\maven\repository为我本地的maven仓库路径,改成你的。 settings.xml...

    nexus 搭建 maven仓库

    nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库

    2024版Maven仓库清除工具

    Maven仓库在Java开发中扮演着至关重要的角色,它是一个存储库,用于管理和构建Java项目,包含各种依赖项如JAR文件、源代码、文档等。然而,随着时间的推移,Maven仓库可能会积累大量不再使用的或者过时的依赖,这...

    一键清除maven仓库中下载失败的jar包的实现方法

    一键清除maven仓库中下载失败的jar包的实现方法 在Maven项目中,下载失败的jar包是一个常见的问题,它们会占用磁盘空间,影响开发效率和心情。因此,清除这些下载失败的jar包变得非常重要。本文将详细介绍如何使用...

    详解如何将本地JAR包添加到本地Maven仓库中

    详解如何将本地JAR包添加到本地Maven仓库中 有些时候,当我们需要在自己的maven工程中添加一个确定的jar而发现Maven中央仓库不存在时,但是我们自己手上有这些需要的jar包,那么我们可以自给自足,把这个jar包添加到...

    阿里云Maven仓库镜像.docx

    阿里云Maven仓库镜像 Maven是Java开发中常用的项目管理工具,可以帮助开发者管理项目的构建、编译、测试、打包和部署。Maven仓库是存储Maven项目依赖项的仓库,用于存储项目需要的jar包和其他依赖项。阿里云Maven...

    maven仓库清理程序

    ** Maven仓库清理程序详解 ** Maven仓库是Java开发者在构建项目时不可或缺的一部分,它存储了项目的依赖库,包括JAR文件和其他构建资源。随着时间的推移,Maven仓库可能会积累大量的缓存文件,这些文件可能包括以"....

    Maven仓库链接下载

    Maven仓库是Java开发中不可或缺的一部分,它是一个中央存储库,包含了大量的开源项目构件(JAR文件),使得开发者能够方便地管理和下载所需的依赖。Maven通过使用一个统一的配置方式,简化了项目的构建、依赖管理和...

    maven仓库jar包

    Maven仓库是Java开发中至关重要的一个组成部分,它是一个集中存储各种软件构件(如JAR包)的中央仓库,便于开发者获取、管理和分享依赖。Maven通过配置项目构建的POM.xml文件,能够自动从仓库中下载所需的jar包,极...

    清理本地和远程maven仓库repository中的无效或者垃圾版本文件lastUpdated、_remote等

    1、工具作用:清理本地和远程maven仓库repository中的无效或者垃圾版本文件lastUpdated、_maven.repositories*、_remote.repositories; 2、使用方法1:在本地仓库repository文件夹中右键,打开Git Bahs Here命令...

    JxBrowser开发maven仓库jar包

    由于JxBrowser在maven仓库中可能不再可用,对于需要使用此库的开发者来说,直接下载jar包并将其部署到本地或私有Maven仓库是必要的步骤。 首先,我们需要理解Maven仓库的概念。Maven仓库是存储项目依赖的地方,分为...

    maven仓库 jar包

    在Java开发中,Maven仓库是一个至关重要的组成部分,它存储了大量的jar包,这些包包含了各种预编译的类和库,使得开发者无需从零开始构建项目。Maven仓库分为本地仓库、中央仓库和远程仓库,其中"maven-repository...

    maven仓库中org下的springframework

    标题中的“maven仓库中org下的springframework”指的是在Maven的本地或远程仓库中,位于`org`组织下的`springframework`项目。Spring Framework是Java开发中的一个核心框架,由Pivotal Software公司维护,它为构建...

    Maven仓库管理-Nexus

    Maven仓库管理-Nexus Maven仓库管理是Maven的核心概念之一,它解决了使用 Ant 时期的 jar 包管理问题。Maven 仓库的初衷是为了解决版本管理的问题,通过 Group Id, Artifact Id, version 来管理 jar 包,实现了依赖...

    设置Maven仓库-Artifactory

    设置Maven仓库-Artifactory Maven 是 Java 开发者中流行的构建工具,可以帮助减少构建应用程序时所依赖的软件构件的副本。Maven 建议的方法是将所有软件构件存储于一个叫做 repository 的远程仓库中。设置内部 ...

    maven仓库清除工具.rar

    然而,在实际操作中,由于网络问题或依赖冲突,Maven仓库可能会出现下载不完整或者失败的资源,这将导致构建过程受阻。"maven仓库清除工具"正是为了解决这类问题而设计的。 该工具主要用于清理Maven本地仓库中的...

    将本地jar上传到maven仓库

    将本地jar包上传到maven仓库,刷新仓库后即可使用

Global site tag (gtag.js) - Google Analytics