访问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>
<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>
<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>
<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:
- -DrepositoryId=thirdparty
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>
<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>
<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仓库管理是Maven的核心概念之一,它解决了使用 Ant 时期的 jar 包管理问题。Maven 仓库的初衷是为了解决版本管理的问题,通过 Group Id, Artifact Id, version 来管理 jar 包,实现了依赖...
Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省...
### Nexus使用与Maven仓库管理详解 #### 一、Nexus权限配置与用户角色 Nexus,作为一款功能强大的仓库管理工具,其权限配置遵循RBAC(Role-Based Access Control)模型,即基于角色的访问控制。系统内置了三种基本...
### Maven仓库管理详解 #### Maven仓库的基本概念 Maven 是一款强大的自动化构建工具,它能够帮助开发者自动处理项目的构建过程,包括编译、测试、打包、部署等环节。Maven 的核心特性之一便是其仓库系统,它使得...
标题中的“Windows中Maven仓库管理工具:Nexus”指出,Nexus可以在Windows操作系统上运行,为开发者提供便捷的Maven仓库管理服务。Nexus不仅能够作为代理仓库,加速依赖下载,还支持创建私有仓库,用于存储和分发...
【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑤ ( 使用 Sonatype Nexus 搭建 Maven 仓库 ) https://hanshuliang.blog.csdn.net/article/details/127385094 博客资源
nexus-maven仓库管理软件-使用手册(pdf格式)
RepMaven可能是一个针对Maven仓库管理的工具或服务,用于帮助开发者管理私有仓库,镜像中央仓库,或者备份和恢复Maven仓库。它可以帮助企业内部维护一个私有的依赖库,减少对公共中央仓库的访问,提高构建速度,同时...
本篇文章将深入探讨如何使用Artifactory来管理内部Maven仓库。 首先,让我们了解Maven仓库的基本概念。Maven是一个广泛使用的Java项目管理和综合工具,它通过依赖管理简化了构建过程。Maven仓库存储项目的依赖项,...
Maven仓库则是Maven系统中的一个重要组成部分,它存储了各种依赖库,如JAR文件,使得开发者可以轻松地引用和下载所需库,而无需手动下载和管理。 描述中提到的"spring4.0.5"和"mybatis"是两个流行的Java框架。...
### 超全面搭建Maven仓库 Maven是一款强大的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。本文将详细介绍如何搭建Maven环境、配置Maven仓库以及在Eclipse中集成Maven。 #### 一、下载安装Maven...
Maven仓库是Java开发中不可或缺的一部分,它存储了大量的第三方库,为开发者提供了便捷的依赖管理服务。Maven仓库索引压缩包则是为了优化Maven在构建项目时对远程仓库的访问速度而设计的。当我们需要从远程Maven仓库...
Nexus是一款流行的私有Maven仓库管理器,可以作为企业内部的镜像服务器、代理服务器和仓库。它支持多种仓库类型,如Maven2/3、Ivy、npm、NuGet等。通过Nexus,我们可以轻松地管理内部构件、创建虚拟仓库(聚合多个...
Maven仓库是Java开发中不可或缺的一部分,它是一个中央存储库,包含了大量的开源项目构件(JAR文件),使得开发者能够方便地管理和下载所需的依赖。Maven通过使用一个统一的配置方式,简化了项目的构建、依赖管理和...
在软件开发过程中,Maven作为一个强大的项目管理...总之,Maven仓库搜索服务是开发者日常工作中不可或缺的工具,它简化了依赖管理,提高了开发效率。了解如何有效地使用这些服务,将有助于你更高效地管理你的Java项目。
Nexus是Sonatype公司提供的一款强大的Maven仓库管理器,它不仅能够作为Maven的本地仓库,还可以作为代理仓库,甚至可以自定义私有仓库,为团队协作和持续集成提供高效的支持。本文将详细介绍Nexus的搭建过程,以及...
Nexus是由Sonatype公司开发的一款强大的Maven仓库管理器,它可以作为一个代理仓库,缓存远程仓库的依赖,减少网络请求;同时,它也能作为宿主仓库,存储和发布我们自己的组件。在这个过程中,“maven仓库(1)缺少lib...
Maven仓库在Java开发中扮演着至关重要的角色,它是一个存储库,用于管理和构建Java项目,包含各种依赖项如JAR文件、源代码、文档等。然而,随着时间的推移,Maven仓库可能会积累大量不再使用的或者过时的依赖,这...
Maven仓库分为三种类型:本地仓库(Local Repository)、远程仓库(Remote Repository)和中央仓库(Central Repository)。本地仓库是默认的首要资源,Maven首先在这里查找项目依赖。如果找不到,它会尝试从远程...