项目场景:
公司的某外包业务组件要求不开源,但是外包提供的npm
仓库地址install时一直超时,同事使用
Nexus 搭建 npm 私服
版本:Sonatype
Nexus3 Repository Manager
问题描述:
同步外包项目代码时,有两个包无法从官方源、阿里镜像源获取,但是同事搭建的npm私服只能install两个包
提供给组员的npm命令为npm login --registry=私服地址/npm-hosted/ --scope=@admin
原因分析:
没有理解三类npm
仓库
公司的maven私服在内网,完全连不上外网,那么有时需要添加一个依赖,但是依赖还有依赖,从前的做法是在外网电脑里的eclipse添加pom依赖,然后把本地整个.m2覆盖到私服的central目录。这样有很大的缺点:
1,拷贝慢
2,覆盖了原有的文件
最近项目升级spring boot从1.2.3到1.4.1,更新了很多依赖,为了更快的解决问题,提出了如下的方案:
这不是最佳实践,但是比起以
Nexus官网文档下载与
配置。
不过,得益于现在docker的发展,现在基本上常见的应用,都有对应的docker镜像。
所以,我们就不在重新搭建
Nexus,而是直接启动最新的镜像。
打开docker-hub官网然后搜索
nexus的镜像:
<plugin>
<groupId>org.apache.
maven.plugins</groupId>
<artifactId>
maven-deploy-plugin</artifactId>
<version>2.8.1</version>
<executions>
<execution>
<id>deploy-file</id>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file>${project.build.directory}/${project.build.finalName}.jar</file>
<groupId>com.example</groupId>
<artifactId>my-project</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<url>http://
maven.example.com/content/repositories/releases/</url>
<repositoryId>releases</repositoryId>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
2. 运行以下命令将jar
同步到
Maven仓库:
mvn deploy:deploy-file -DgroupId=com.example -DartifactId=my-project -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/my-project-1.0.jar -Durl=http://
maven.example.com/content/repositories/releases/ -DrepositoryId=releases
其中,-Dfile指定jar文件的路径,-Durl指定
Maven仓库的URL,-DrepositoryId指定
仓库ID。
注意:在实际使用中,需要将上述示例中的com.example、my-project、1.0、http://
maven.example.com/content/repositories/releases/、releases等参数替换为实际的值。