`
sundful
  • 浏览: 1250332 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

maven仓库管理器Nexus

阅读更多

  访问http://nexus.sonatype.org/downloads/下载Nexus。
   启动Nexus,就是启动一个web服务器,它的默认地址是localhost:8081。Nexus在一个名为Jetty的servlet容器中运行,它使用一个名为Tanuki Java Service Wrapper的本地服务包裹器启动。这个服务包裹器可以被配置成以Windows服务或Unix守护线程的形式运行Nexus。要启动Nexus,你需要为你的平台找到合适的启动脚本。要查看可用平台的列表,查看${NEXUS_HOME}/bin/jsw目录的内容。
   可执行文件在%nexus安装目录%\nexus-webapp-1.0.0\binjsw\windows-x86-32下:
   InstallNexus.bat/UninstallNexus.bat是安装/卸载nexus为windows service。
   Nexus.bat是直接在命令行中启动Nexus,如果不想安装Nexus为windows service,可以用这个文件来手工控制Nexus的启动退出。
1.配置nexus
   首先登录,默认地址http://localhost:8081/nexus/,默认用户名密码为admin/admin123.
    nexus默认是关闭远程索引下载功能的。开启的方式:
    点击Administration菜单下面的Repositories,将这三个仓库Apache Snapshots,Codehaus Snapshots,Maven Central的
    Download Remote Indexes修改为true。然后在这三个仓库上分别右键,选择Re-index,这样Nexus就会去下载远程的索引文件。
2.管理仓库
以管理员用户登陆然后点击左边导航菜单Administration下面的Repositories。Nexus提供了三种不同的仓库。
(1)代理仓库
  一个代理仓库是对远程仓库的一个代理。默认情况下,Nexus自带了如下配置的代理仓库:
Apache Snapshots
  这个仓库包含了来自于Apache软件基金会的快照版本。http://people.apache.org/repo/m2-snapshot-repository
Codehaus Snapshots
  这个仓库包含了来自于Codehaus的快照版本。 http://snapshots.repository.codehaus.org/
Central Maven Repository
  这是中央Maven仓库(发布版本)。 http://repo1.maven.org/maven2/
(2)宿主仓库
  一个宿主仓库是由Nexus托管的仓库。Maven自带了如下配置的宿主仓库。
3rd Party
  这个宿主仓库应该用来存储在公共Maven仓库中找不到的第三方依赖。这种依赖的样例有:你组织使用的,商业的,私有的类库如Oracle JDBC驱动。
Releases
  这个宿主仓库是你组织公布内部发布版本的地方。
Snapshots
  这个宿主仓库是你组织发布内部快照版本的地方。
(3)虚拟仓库
  一个虚拟仓库作为Maven 1的适配器存在。Nexus自带了一个central-m1虚拟仓库
3. 管理组
  组是Nexus一个强大的特性,它允许你在一个单独的URL中组合多个仓库。Nexus自带了两个组:public和public-snapshots。public组中组合了三个宿主仓库:3rd Party, Releases, 和Snapshots,还有中央Maven仓库。而public-snapshots组中组合了Apache Snapshots和Codehaus Snapshots仓库。
4. 配置maven
  要让maven使用Nexus作为仓库,要修改~/.m2/settings.xml.

 <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
            <id>nexus</id>
            <name>local private nexus</name>
            <url>http://localhost:8081/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:8081/nexus/content/groups/public-snapshots</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

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


5.部署构件至Nexus
   要部署构件至Nexus,在distributionManagement中提供仓库URL,然后运行mvn deploy。Maven会通过一个简单的HTTP PUT将项目POM和构件推入至你的Nexus安装。需要配置你项目POM中distributionManagement部分的repository。

  <distributionManagement>
    <repository>
      <id>releases</id>
      <name>Internal Releases</name>
      <url>http://localhost:8081/nexus/content/repositories/releases</url>
    </repository>
    <snapshotRepository>
      <id>Snapshots</id>
      <name>Internal Snapshots</name>
      <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>


  这样还没完,这时如果部署会报错,还要在~/.m2/settings.xml中添加如下的服务器登录信息:

    <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>Snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>


  部署第三方构件:
  构件可能是私有数据库的JDBC驱动如Oracle,或者你依赖于另一个JAR,它既不开源也无法免费获得。在这样的情况下,你就需要手动拿来这些构件然后发布到你自己的仓库中。Nexus提供宿主的"third-party"仓库,就是为了这个目的。
  使用以下命令发布该文件至Nexus:

 mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14
 -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar 
 -Durl=http://localhost:8081/nexus/content/repositories/thirdparty 
 -DrepositoryId=thirdparty


6.Nexus监听端口
  默认情况下,Nexus监听端口8081。你可以更改这个端口,通过更改${NEXUS_HOME}/conf/plexus.properties的值,为此,停止Nexus,更改文件中applicationPort的值,然后重启Nexus。
7.Maven Profiles
   Maven中的profile是一组可选的配置,可以用来设置或者覆盖配置默认值。有了profile,你就可以为不同的环境定制构建。profile可以在pom.xml中配置,并给定一个id。然后你就可以在运行Maven的时候使用的命令行标记告诉Maven运行特定profile中的目标。以下pom.xml使用production profile覆盖了默认的Compiler插件设置。

 
 <profiles>
    <profile>
      <id>production</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <debug>false</debug>
              <optimize>true</optimize>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

要使用production profile来运行mvn install,你需要在命令行传入-Pproduction参数。要验证production profile覆盖了默认的Compiler插件配置,可以像这样以开启调试输出(-X) 的方式运行Maven。
    如果你开始大量使用Maven profile,你会希望将profile从POM中分离,使用一个单独的文件如profiles.xml。你可以混合使用定义在pom.xml中和外部profiles.xml文件中的profile。只需要将profiles元素放到${basedir}目录下的profiles.xml文件中,然后照常运行Maven就可以。profiles.xml文件的大概内容如下:

 
<profiles>
    <profile>
      <id>development</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <debug>true</debug>
              <optimize>false</optimize>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>production</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <debug>false</debug>
              <optimize>true</optimize>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>


   settings profile可以应用到所有你使用Maven构建的项目。你可以在两个地方定义settings profile:定义在~/.m2/settings.xml中的用户特定settings profile,或者定义在${M2_HOME}/conf/settings.xml中的全局settings profile。

分享到:
评论

相关推荐

    Maven仓库管理-Nexus

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

    nexus 搭建 maven仓库

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

    Nexus 是Maven仓库管理器

    Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省...

    Sonatype Nexus Maven 仓库管理工具

    【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑤ ( 使用 Sonatype Nexus 搭建 Maven 仓库 ) https://hanshuliang.blog.csdn.net/article/details/127385094 博客资源

    maven3.8.3+nexus3.34.zip

    Nexus是Sonatype公司开发的软件仓库管理器,它为Maven、Gradle等构建工具提供了一个集中的仓库服务。Nexus 3.34版本包含了以下功能: 1. **代理仓库**:Nexus可以作为远程仓库的代理,缓存常用的依赖,减少网络请求...

    使用nexus 搭建 maven 本地仓库

    Nexus是一个强大的 Maven、NPM、Gradle等构建工具的代理服务器和仓库管理器,它可以帮助我们更高效地管理和分发软件组件。 首先,我们需要理解Nexus的基本概念。Nexus主要有三种仓库类型:proxy、hosted和group。...

    maven私服搭建-nexus的部署

    Nexus 是一个由 Sonatype 开发的 Maven 私服解决方案,它提供了强大的仓库管理功能,支持 Maven、Gradle、Ivy 等多种依赖管理工具。Nexus 支持多种仓库类型,包括 Maven 仓库、NPM 仓库、Docker 仓库等。 二、Nexus...

    Maven仓库-Nexus搭建

    Nexus是Sonatype公司提供的一款强大的Maven仓库管理器,它不仅能够作为Maven的本地仓库,还可以作为代理仓库,甚至可以自定义私有仓库,为团队协作和持续集成提供高效的支持。本文将详细介绍Nexus的搭建过程,以及...

    Windows中Maven仓库管理工具:Nexus

    标题中的“Windows中Maven仓库管理工具:Nexus”指出,Nexus可以在Windows操作系统上运行,为开发者提供便捷的Maven仓库管理服务。Nexus不仅能够作为代理仓库,加速依赖下载,还支持创建私有仓库,用于存储和分发...

    Maven本地仓库搭建工具nexus-2.11.4-01-bundle

    Nexus是由Sonatype公司开发的一款强大的Maven仓库管理器,它不仅能够作为本地仓库,还可以作为代理仓库,甚至可以用来托管自定义的库。Nexus提供了一个图形用户界面,方便管理和维护各种仓库。 ** Nexus 2.11.4-01 ...

    nexus使用+Maven仓库管理

    ### Nexus使用与Maven仓库管理详解 #### 一、Nexus权限配置与用户角色 Nexus,作为一款功能强大的仓库管理工具,其权限配置遵循RBAC(Role-Based Access Control)模型,即基于角色的访问控制。系统内置了三种基本...

    java maven仓库 搭建Nexus

    Java maven 仓库是 Java 项目中常用的依赖管理工具,而 Nexus 则是 Sonatype 公司提供的一款开源的 Maven 仓库管理器。搭建 Nexus 仓库可以帮助我们更好地管理 Maven 依赖项,提高项目的开发效率和质量。 一、安装 ...

    maven 库管理工具 nexus 3.55 - 基于其可以搭建私有库

    ** Maven 库管理工具 Nexus 3.55:构建私有仓库详解 ** Maven 是一个广泛使用的 Java 项目管理和综合工具,它依赖于中央仓库来获取和存储各种依赖项。然而,在大型企业或团队中,直接依赖中央仓库可能会面临速度慢...

    最新maven私服工具nexus.zip

    Maven Nexus是一款强大的基于Java开发的Maven仓库管理器,它在软件开发过程中,特别是在Java世界里,扮演着至关重要的角色。Nexus不仅作为一个代理服务器,帮助开发者获取远程Maven依赖,还提供了一个私有仓库功能,...

    apache-maven-3.2.1-nexus

    Nexus作为Maven仓库管理器,有以下关键功能: 1. **本地仓库管理**:Nexus可以作为一个本地代理,缓存远程仓库的依赖,减少网络延迟,提高构建速度。 2. **远程仓库代理**:它可以代理多个外部Maven仓库,如中央...

    maven仓库清理命令

    maven仓库清理命令

    maven3+nexus2搭建本地,私有仓库

    Maven 是一个流行的项目管理和构建工具,而 Nexus 则是一个功能强大且灵活的仓库管理器。通过搭建本地仓库和私有仓库,可以更好地管理项目依赖关系,提高开发效率和项目质量。本文将详细介绍如何使用 Maven 和 Nexus...

Global site tag (gtag.js) - Google Analytics