我正试图为我们的团队建立一个私有的远程存储库。到目前为止,存储库提供了以下服务-
现在我想做的是-
有人能建议一些方法/或教程作为参考,以达到上述两个目标吗?提前谢谢。
编辑:,我尝试了纳撒尼尔·威斯布罗特的答案和附件-2.7.0-06-bundle。经过几个小时的努力,我能够在使用jre-7时设置它。使用jre-6,无法启动连接。但是我们的项目是用JDK-6部署的。我们不希望更改当前的jre版本。有了jre-6,apache-archiva就可以了。但我不确定我是否能实现上一节中的所有目标。是否有任何archiva用户/专家可以告诉我是否能在上一节中实现这些目标?
发布于 2015-02-14 19:56:27
我已经设置了nexus来镜像我的maven本地存储库(at ~/.m2/repository.),因为许多人仍然访问了这篇文章,我认为如果我能够分享如何将nexus配置为存储库管理器,对其他人会有帮助。这个过程在Ubuntu 12.04中为我完美地运行。它在这里-
1.下载nexus-2.11.1-01-bundle.tar.gz或最新版本的nexus。
2.提取主目录中的tar文件-
$ tar -xvf nexus-2.11.1-01-bundle.tar.gz现在,您将在主目录中获得两个目录-- nexus-2.11.1-01和sonatype-work。
/usr/local/ 3.将这两个目录复制到目录(可以复制到其他地方)-
$ cp -r nexus-2.11.1-01 /usr/local/
$ cp -r sonatype-work /usr/local/与nexus相关的可执行/配置文件存储在nexus-2.11.1-01目录中,pom.xml中提到的jar文件存储在sonatype-work目录中。
这些jar文件是~/.m2/repository的镜像。第一次发出mvn package命令时,所有的jar都存储在这里。然后,当您再次发布mvn package时,所有jars都从nexus存储库下载,而不是从中央存储库下载。
4.转到/usr/local/目录-
$ cd /usr/local/ 5.创建到nexus-2.11.1-01的链接-
$ sudo ln -s nexus-2.7.0-06 nexus6.现在在终端中运行nexus类型的
$ bash nexus/bin/nexus console 这里连接连接与您的控制台。如果关闭控制台,则nexus服务器将被终止。当您试图为Ubuntu服务器机器运行连接时,可以使用屏幕。。
注意:在试图使用上面的命令运行nexus时,可能会出现两个问题。如果您没有发现任何问题,那么跳过接下来的两个步骤(步骤-7和步骤8)
7.由于权限不足,可能会出现第一个问题。阅读错误信息并采取必要步骤。但是作为一个快速解决方案,,你可以这样做-
$ sudo chmod -R 777 nexus-2.11.1-01/
$ sudo chmod -R 777 sonatype-work/8.如果使用低于java 7的任何jdk版本,则可能会显示以下错误消息:
包装器启动一个JVM。包装器/ JVM在加载应用程序时退出。在线程"main“java.lang.UnsupportedClassVersionError: org/sonatype/nexus/bootstrap/jsw/JswLauncher :不支持的major.minor版本51.0中出现异常
在本例中,使用jdk7运行步骤6中提到的命令。假设您有两个jdk - jdk6和jdk7。您的项目运行在jdk6上。那么,只有在运行nexus时,才可以在终端(假设jdk7位于/usr/lib/jvm/jdk1.7.0_45目录下)执行此操作-
$ export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
$ export PATH=$JAVA_HOME/bin:$PATH 9.现在在浏览器中键入address - http://localhost:8081/nexus/。如果步骤1到6(如果发生了错误,那么步骤1到8)完成得很好,那么您可以成功地找到登录屏幕。默认登录用户名为- admin,密码为- admin123
10.停止连接。只需关闭终端或按Ctrl+C在步骤6的终端。在您的~/.m2目录中创建一个名为- settings.xml的空文件。将以下内容复制到这个settings.xml文件中-
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>11.并在项目的pom.xml文件中添加以下行-
<distributionManagement>
<snapshotRepository>
<id>my-snapshots</id>
<name>My internal repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>my-releases</id>
<name>My internal repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
</distributionManagement>发布于 2014-01-02 16:22:19
Sonatype Nexus做你想做的任何事情,只需要很少的配置来满足你的要求,并且有一个很好的界面。关于"Maven内部存储库,真的很难吗?“问题下的基本设置有一些细节
基本上,您可以将Nexus设置为缓存存储库:您的Maven客户机只访问内部存储库。当内部存储库找不到工件时,它会转到Central (或您定义的任何其他外部存储库),为您获取它,并将其存储起来供以后使用。
这是很酷的,因为如果您想要从一个抓取--任何依赖项--免费转换到一个锁定的环境,Nexus会让它变得简单。将其设置为“从Central中提取”,在干净的机器上运行您的构建(迫使Nexus摄入所有当前的中央依赖项),然后关闭proxy-repo特性(因此,任何新的/更改的依赖项都将由devops管理)。
发布于 2014-01-05 23:02:10
您所描述的几乎是大多数存储库管理器(包括Archiva )的默认配置。下面的内容是否有助于将其设置为从Maven中使用?
http://archiva.apache.org/docs/1.3.6/userguide/using-repository.html
https://stackoverflow.com/questions/20882622
复制相似问题