`
fortaotao
  • 浏览: 47637 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MAVEN2入门学习心得(2)-仓库相关

阅读更多

MAVEN2的仓库基本可以分为主机仓库、代理仓库、本地仓库。

 

主机仓库通常是构件的原始存储位置,比如:核心仓库central、Nexus建立的host仓库。

 

代理仓库通常是主机仓库的中间代理,比如:Nexus中建立的proxy仓库。

 

本地仓库通常是构件的最终需求位置,一般是用户代码构建的地方。用户在安装完MAVEN2的时候可以改变本地仓库的位置。

 

我们可以通过如下命令:mvn help:effective-pom 查看最简单的pom.xml配置实际设置仓库情况:

 

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

 

可以看到,构建过程中引用到的第三方构件仅会从核心仓库中查找并下载。

 

每次构建都从http://repo1.maven.org/maven2核心仓库下载是不适宜的。当然,如果引用构件已经存在于本地仓库到是不会重新下载。

 

我们还有调用企业内部的一些第三方构件的需要,这些都要求我们寻求搭建代理仓库。

 

Nexus是比较不错的代理仓库。如何搭建网上已经有不少资料,这里就不详细叙述了。

 

Nexus中已经存在了两个仓库组:Public Repositories、Public Snapshot Repositories。查看组中的仓库包括了主

 

机仓库(Central)的代理仓库。

 

我们接下来要做的是让本地安装的MAVEN在构建项目时查找Nexus仓库。

 

通常,在settings.xml文件中采用Profile来设置是比较方便的,如下:

 

<profiles>

<profile> 
     <id>nexus</id> 
     <repositories> 
       <repository> 
           <id>nexus</id> 
           <name>local private nexus</name> 
           <url>http://localhost:7777/nexus/content/groups/public</url> 
       </repository> 
     </repositories> 
   </profile> 
   <profile> 
     <id>nexus-snapshots</id> 
     <repositories> 
       <repository> 
           <id>nexus-snapshots</id> 
           <name>local private nexus snapshots</name> 
           <url>http://localhost:7777/nexus/content/groups/public-snapshots</url> 
       </repository> 
     </repositories> 
   </profile>

</profiles>

 

当然,还要进行激活设定。

 

<activeProfiles> 
    <activeProfile>nexus</activeProfile> 
    <activeProfile>nexus-snapshots</activeProfile>  
 </activeProfiles>

 

这时,如果你细心的话会调用命令:mvn help:effective-pom 查看pom.xml的实际设置仓库情况,如下:

 

  <repositories>
    <repository>
      <id>nexus-snapshots</id>
      <name>local private nexus snapshots</name>
      <url>http://localhost:7777/nexus/content/groups/public-snapshots</url>
    </repository>
    <repository>
      <id>nexus</id>
      <name>local private nexus</name>
      <url>http://localhost:7777/nexus/content/groups/public</url>
    </repository>
    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <url>http://repo1.maven.org/maven2</url>
    </repository>
  </repositories>

 

个人建议将central的直接请求映射到Nexus相应的仓库组比较合适。在settings.xml文件中增加如下设定就满足了需要。

 

<mirror>
      <id>NexusMirror</id>
      <name>Nexus Public Mirror</name>
      <url>http://localhost:7777/nexus/content/groups/public</url>
      <mirrorOf>central</mirrorOf>
</mirror>

 

这样基本完成了企业仓库的搭建,也让企业内部员工都能访问企业仓库而不是直接访问MAVEN核心仓库。

 

企业仓库有需要新增第三方构件需要的时候,可以采用如下命令行完成。

 

mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 \

-Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar \

-Durl=http://localhost:7777/nexus/content/repositories/thirdparty \

-DrepositoryId=thirdparty

 

http://localhost:7777/nexus/content/repositories/thirdparty是Nexus中已经存在的主机仓库。

 

企业通常有需要在Nexus中建立自己的仓库组和仓库。假如企业增加了一个仓库,其url为

 

http://localhost:7777/nexus/content/repositories/test

 

如果是jar文件,可以采用前面的命令行mvn deploy:deploy-file来完成仓库中构件的添加。

 

如果是maven项目,可以使用mvn deploy完成。但在pom.xml文件中应该增加发布管理设定。

 

<distributionManagement>
    <repository>
      <id>test</id>
      <name>ums test</name>
      <url>http://localhost:7777/nexus/content/repositories/test</url>
    </repository>
</distributionManagement>

 

企业仓库的使用基本就这些,有新的想法再丰富的。

分享到:
评论

相关推荐

    apache-maven-3.6.3-bin

    apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-...

    maven-compiler-plugin-3.8.0-source-release插件

    下载 `maven-compiler-plugin-3.8.0-source-release` 后,将其添加到 Maven 的本地仓库,或者在 `pom.xml` 中声明依赖,以便在构建过程中自动下载。对于大型项目,推荐使用 Maven 的私有仓库来存储常用插件,以提高...

    最新Maven-apache-maven-3.8.1-Repository-配置好的

    2. **添加Maven到PATH**: 将Apache Maven-3.8.1的`bin`目录路径添加到系统环境变量`PATH`中,这样命令行可以识别`mvn`命令。 3. **配置settings.xml**: Maven的配置文件`settings.xml`通常位于`用户主目录\.m2\`下...

    maven资源 apache-maven-3.3.9-bin.zip

    Apache Maven 是一个强大的Java项目管理和综合工具,它简化了构建过程,通过标准化构建生命周期和依赖管理,使得开发者能够更高效地构建、测试和部署Java应用程序。Maven 3.3.9是Maven的一个稳定版本,它包含了多个...

    Maven更新失败,Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1

    Maven更新问题 今天Maven在更新的时候发现一直更新不成功,总结下解决方法。 在apache-maven-3.5.2/conf/setting.xml中加入以下配置即可解决 alimaven aliyun maven ...

    apache-maven-3.6.0_apache-maven-3.6.0_maven压缩包_maven3.6.0下载_

    Maven仓库包含了大量的插件,覆盖了从源代码格式化到单元测试、代码覆盖率报告、部署等各种功能。 总之,Apache Maven 3.6.0作为一款强大的Java项目管理工具,提供了自动化构建、依赖管理和项目信息管理等功能,极...

    maven2-xdoclet2-plugin-2.0.5.jar

    maven2-xdoclet2-plugin-2.0.5.jar

    apache-maven-3.3.9.rar

    apache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9....

    apache-maven-3.5.4-bin和apache-maven-3.3.9-bin

    2. **Maven 3.3.9**: Maven 3.3.9是在2016年发布的,也是Maven 3.x系列的一个重要版本。它在前一版本的基础上优化了性能,并且对多种操作系统和Java版本提供了更好的兼容性。此版本增强了对HTTP代理的支持,改进了...

    maven2-xdoclet2-plugin-2.0.6.jar

    maven2-xdoclet2-plugin-2.0.6.jar

    apache-maven-3_6_3-bin.tar.gz下载

    7. **仓库管理**:Maven 使用本地仓库存储下载的依赖,同时可以连接到远程中央仓库或其他自定义仓库。 8. **多模块项目**:Maven 支持大型项目中的模块化结构,可以在一个顶层 POM 下管理多个子项目。 9. **报告...

    Maven build插件之Maven-assembly-plugin自定义打包

    Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...

    Maven使用tomcat8-maven-plugin插件.docx

    Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。 Tomcat 是一个流行的 Web 服务器,Maven 提供了一个插件 tomcat8-maven-...

    apache-maven-3.8.4安装包

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。它基于项目对象模型(Project Object Model,POM)的概念,使得项目的构建、依赖管理、文档生成、代码质量检查等任务变得简单。Apache ...

    maven压缩包,apache-maven-3.3.9 ,apache-maven-3.5.3,apache-maven-3.6.1

    Apache Maven 是一个强大的项目管理工具,它主要用于构建、管理和聚合Java项目。这个压缩包包含了Apache Maven的三个不同版本:...同时,学习如何编写POM.xml文件,理解和运用Maven的坐标系统,是掌握Maven的关键。

    jeecg-3.5.1-eclipse-非maven版本

    jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-...

    apache-maven-3.8.6-bin.tar

    apache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6...

    apache-maven-3.6.3下载

    2. **boot**目录:包含了用于启动Maven的SmallRye ClassLoader。 3. **conf**目录:包含Maven的配置文件,如`settings.xml`,用户可以通过它来定制Maven的行为,如仓库位置、镜像设置等。 4. **lib**目录:包含了...

    apache-maven-3.8.6.zip

    apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...

    Apache Maven (apache-maven-3.8.4-bin.zip)

    Apache Maven (apache-maven-3.8.4-bin.zip)是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一条中央信息中管理项目的构建、报告和文档。

Global site tag (gtag.js) - Google Analytics