私有仓库

返回构建工具


常见私服产品

产品说明
Nexus Repository(Sonatype)最常用,支持 Maven/npm/Docker 等多种格式
Artifactory(JFrog)功能更丰富,企业版收费
GitHub Packages与 GitHub 集成,适合开源项目

仓库类型

类型说明
hosted本地托管,存放内部构件
proxy代理外部仓库(如 Maven Central),缓存到本地
group聚合多个仓库,统一入口

Maven 配置私服

查看 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 配置私服

查看 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

相关文档