Nexus 制品库管理实践03 raw类型的仓库

搭建制品库(本地仓库)

本地仓库:以Maven为例:

  • RELEASE类型仓库(存放制品稳定版)
  • SNAPSHOT类型仓库(存放制品开发版)

切记:release类型的仓库只能存放release版本的包。不能将release类型的包上传到snapshot仓库,同理snapshot类型的包也不能上传到release类型的仓库中。 

raw可以理解为本地文件存储类型,就相对于一块存储,可以往里面传入任何的包,制品和依赖是不同的依赖是要被其他包所引用的,如maven。制品是要发布的包,这个就不需要依赖了所以制品可以放到raw类型仓库就行了。

本地仓库类型有很多,这里可以选择,raw是最普通的格式了,可以理解为文件存储格式。

创建raw类型的仓库,这就是一个文件存储,所有的包都传到这上面来。如果是maven类型的制品,直接用<dependency>引入。maven类型是依赖,是制品传上去之后需要被依赖。

如果只是将制品发布,作为服务,不需要被其他人引用,可以做为raw类型的

新建raw类型的仓库

上传制品


curl -u admin:admin123 如果Nexus开启了认证需要配置认证信息才能正常访问。

curl -X POST "http://139.198.166.235:8082/service/rest/v1/components?repository=devops-repo" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "raw.directory=/acmp/acmp-myapp-service/1.1.1" \
-F "raw.asset1=@target/demo-0.0.1-SNAPSHOT.jar;type=application/java-archive" \
-F "raw.asset1.filename=acmp-myapp-service-1.1.1.jar" \
-u admin:admin123

现在规范化一些,传到固定的仓库:devops-repo,这个仓库存放的是每个组的包

/acmp/acmp-myapp-service/1.1.1/acmp-myapp-service-1.1.1.jar

如果是前端服务:

/acmp/acmp-myapp-web/1.1.1/acmp-myapp-web-1.1.1.zip

       stage('PushArtifacts'){
           steps{
             script{
             repository = "devops-repo"
             version = "1.1.2"
             project = "${env.JOB_NAME}".split("-")[0]
             directory = "${project}/${env.JOB_NAME}/${version}"
             
             pkg = sh returnStdout: true, script: """ ls target/ | grep -E "jar\$" """
             asset = pkg - "\n"
             filename = "${env.JOB_NAME}-${version}.jar"
             println(filename)
             sh "mv target/${asset} target/${filename} && ls target/"
                          script{
            withCredentials([usernamePassword(credentialsId: 'ff93f4bf-9d8c-4fc2-bccd-3e614f10d643', passwordVariable: 'passwd', usernameVariable: 'user')]) {
                   nexus.PushRawArtifactsByApi(repository,directory,filename,user,passwd)
               }
            }
         }
      }
   }
def PushRawArtifactsByApi(repository,directory,filename,user,passwd){
 sh """
   curl -X POST "http://139.198.166.235:8082/service/rest/v1/components?repository=${repository}" \
      -H "accept: application/json" \
      -H "Content-Type: multipart/form-data" \
      -F "raw.directory=${directory}" \
      -F "raw.asset1=@target/${filename};type=application/java-archive" \
      -F "raw.asset1.filename=${filename}" \
      -u "${user}":"${passwd}"
"""
}
[Pipeline] { (PushArtifacts)
[Pipeline] script
[Pipeline] {
[Pipeline] sh
+ ls target/
+ grep -E 'jar$'
[Pipeline] echo
acmp-myapp-service-1.1.2.jar
[Pipeline] sh
+ mv target/demo-0.0.1-SNAPSHOT.jar target/acmp-myapp-service-1.1.2.jar
+ ls target/
acmp-myapp-service-1.1.2.jar
classes
demo-0.0.1-SNAPSHOT.jar.original
generated-sources
generated-test-sources
maven-archiver
maven-status
surefire-reports
test-classes
[Pipeline] script
[Pipeline] {
[Pipeline] withCredentials
Masking supported pattern matches of $passwd
[Pipeline] {
[Pipeline] sh
Warning: A secret was passed to "sh" using Groovy String interpolation, which is insecure.
		 Affected argument(s) used the following variable(s): [passwd]
		 See https://jenkins.io/redirect/groovy-string-interpolation for details.
+ curl -X POST 'http://139.198.166.235:8082/service/rest/v1/components?repository=devops-repo' -H 'accept: application/json' -H 'Content-Type: multipart/form-data' -F raw.directory=/acmp-myapp-service/1.1.2 -F 'raw.asset1=@target/acmp-myapp-service-1.1.2.jar;type=application/java-archive' -F raw.asset1.filename=acmp-myapp-service-1.1.2.jar -u admin:****

可以看到一个项目acmp下面有很多的服务acmp-myapp-service等等......,每个服务下面有不同版本的包。

如果是静态项目,就是创建静态的压缩包

[root@jenkins-agent devops-web-service]# cd dist/
[root@jenkins-agent dist]# tar zcf dist.tar.gz *
[root@jenkins-agent dist]# ls
dist.tar.gz  index.html  static



      curl -X POST "http://139.198.166.235:8082/service/rest/v1/components?repository=devops-repo" \
      -H "accept: application/json" \
      -H "Content-Type: multipart/form-data" \
      -F "raw.directory=/devops/devops-web-service" \
      -F "raw.asset1=@dist/dist.tar.gz;type=application/x-gzip" \
      -F "raw.asset1.filename=devops-web-service-1.1.1.tar.gz" \
      -u admin:admin123

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值