本文目录导读:

- 使用 Pipeline 脚本上传到 Nexus (Maven/Gradle)
- 使用 Pipeline 脚本上传到 Artifactory (通用制品)
- 使用 Pipeline 脚本上传到 AWS S3
- 使用 Freestyle Job 上传到 Nexus (通过构建后操作)
- 通用脚本:上传到任意 HTTP 仓库 (curl)
- 处理制品版本号
- 常见注意事项
在 Jenkins 中,将制品上传到仓库的脚本(通常使用 Pipeline 或 Freestyle Job 的构建后操作)主要取决于你使用的仓库类型(如 Nexus、Artifactory、AWS S3 等),以下是一些常见场景的脚本示例和实现方法。
使用 Pipeline 脚本上传到 Nexus (Maven/Gradle)
假设你已经配置了 Nexus 仓库凭证,制品是 JAR 或 WAR 文件。
脚本示例:
pipeline {
agent any
tools {
maven 'Maven-3.8.4' // 指定 Maven 版本
}
stages {
stage('Build') {
steps {
sh 'mvn clean package -DskipTests'
}
}
stage('Upload to Nexus') {
steps {
// 使用 Maven Deploy 插件上传
sh 'mvn deploy -DskipTests -Pnexus-releases'
}
}
}
}
注意: 需要在 pom.xml 或 settings.xml 中配置 Nexus 仓库地址和认证信息。
使用 Pipeline 脚本上传到 Artifactory (通用制品)
需要安装 Artifactory 插件。
脚本示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'dotnet publish -c Release -o out' // 以 .NET 为例
}
}
stage('Upload to Artifactory') {
steps {
rtUpload(
serverId: 'Artifactory-server', // 在 Jenkins 中配置的 Artifactory 凭证 ID
spec: '''{
"files": [
{
"pattern": "out/**",
"target": "libs-release-local/my-project/${BUILD_NUMBER}/"
}
]
}'''
)
}
}
}
}
使用 Pipeline 脚本上传到 AWS S3
需要安装 AWS CLI 并配置凭证。
脚本示例:
pipeline {
agent any
environment {
AWS_DEFAULT_REGION = 'us-east-1'
}
stages {
stage('Build') {
steps {
sh 'go build -o myapp'
}
}
stage('Upload to S3') {
steps {
withAWS(credentials: 'aws-credentials-id') {
sh '''
aws s3 cp myapp s3://my-bucket/releases/myapp-${BUILD_NUMBER}/
aws s3 cp myapp s3://my-bucket/releases/myapp-latest/
'''
}
}
}
}
}
使用 Freestyle Job 上传到 Nexus (通过构建后操作)
- 安装 Nexus Artifact Uploader 插件。
- 构建后操作选择 Upload artifacts to Nexus。
- 配置:
- Nexus Version: 选择 2 或 3
- 协议: HTTP 或 HTTPS
- URL: Nexus 仓库地址 (如
http://nexus:8081) - Credentials: 已配置的凭证
- Group, Artifact, Version, Packaging 等 Maven 坐标
- File: 上传的制品路径 (如
target/*.jar)
通用脚本:上传到任意 HTTP 仓库 (curl)
适用于自建仓库或简单的二进制仓库。
脚本示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'npx webpack --mode production'
}
}
stage('Upload') {
steps {
withCredentials([string(credentialsId: 'repo-token', variable: 'TOKEN')]) {
sh '''
curl -u "admin:${TOKEN}" \
--upload-file dist/my-app.zip \
"http://myrepo.example.com/artifacts/my-app-${BUILD_NUMBER}.zip"
'''
}
}
}
}
}
处理制品版本号
通常使用 ${BUILD_NUMBER} 或 ${env.BUILD_ID} 作为版本号的一部分。
常见注意事项
| 问题 | 解决方案 |
|---|---|
| 凭证管理 | 使用 Jenkins 凭证绑定 (credentialsId) |
| 制品路径错误 | 使用 find . -name '*.jar' 或构建工具输出 |
| 权限不足 | 检查仓库角色和 Jenkins 凭证权限 |
| 缺失插件 | 安装 Credentials Binding 等必要插件 |
| 制品类型不匹配 | 指定正确的 Maven 坐标或仓库布局 |
- Maven/Gradle 等构建工具自身有 deploy 插件。
- Nexus/Artifactory 有专门的 Jenkins 插件简化操作。
- 云存储 使用 awscli/gcloud/az 等 CLI 工具。
- 通用方法 使用 curl 或 Jenkins HTTP 步骤。
根据你的具体仓库类型选择合适的脚本模式即可,如果需要更具体的示例或遇到问题,可以提供更多细节(仓库类型、构建工具、错误日志)。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播