私有仓库
→ 返回构建工具
常见私服产品
| 产品 | 说明 |
|---|---|
| Nexus Repository(Sonatype) | 最常用,支持 Maven/npm/Docker 等多种格式 |
| Artifactory(JFrog) | 功能更丰富,企业版收费 |
| GitHub Packages | 与 GitHub 集成,适合开源项目 |
仓库类型
| 类型 | 说明 |
|---|---|
| hosted | 本地托管,存放内部构件 |
| proxy | 代理外部仓库(如 Maven Central),缓存到本地 |
| group | 聚合多个仓库,统一入口 |
Maven 配置私服
配置镜像(settings.xml)
<!-- ~/.m2/settings.xml -->
<mirrors>
<mirror>
<id>nexus</id>
<url>http://nexus.example.com/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>配置认证(settings.xml)
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>password</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>password</password>
</server>
</servers>配置发布地址(pom.xml)
<distributionManagement>
<repository>
<id>nexus-releases</id>
<url>http://nexus.example.com/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>http://nexus.example.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>mvn deploy→ 查看打包与发布
Gradle 配置私服
配置依赖下载
repositories {
maven {
url = uri("http://nexus.example.com/repository/maven-public/")
credentials {
username = project.findProperty("nexusUser") as String?
password = project.findProperty("nexusPassword") as String?
}
}
}凭据存储(不提交到代码仓库)
# ~/.gradle/gradle.properties
nexusUser=admin
nexusPassword=password配置发布
publishing {
repositories {
maven {
url = if (version.toString().endsWith("SNAPSHOT"))
uri("http://nexus.example.com/repository/maven-snapshots/")
else
uri("http://nexus.example.com/repository/maven-releases/")
credentials {
username = project.findProperty("nexusUser") as String?
password = project.findProperty("nexusPassword") as String?
}
}
}
}./gradlew publish