管理进化

制品库是什么


CODING 制品库是 CODING DevOps 的子产品,用以管理源代码编译后的构建产物,支持 Docker、Maven、Helm、npm 包等常见制品库类型,制品库可以跟源代码协同进行版本化控制,可以与本地各构建工具和云上的持续集成,持续部署无缝结合,并支持漏洞扫描等特性。为研发团队提供优质高效的构建物管理服务,把控构建物质量。

一、 部署

测试环境使用Docker安装部署

docker run -id \

--privileged=true --name=nexus3 \

-p 8081:8081 \

-v ${LOCALDIR}/nexus3/nexus-data:/nexus-data \

sonatype/nexus3:3.20.1

安装完成后默认的admin账号密码存储在了数据目录,获取初始化密码后更新账号密码。

二、 基本概念

组件是一种资源,在构建过程中需要依赖。它可以是整个应用程序,也可以是静态资源(例如图片)。通常,这些组件是各种文件的存档,包括:类文件中的Java字节码、C对象文件、文本文件、二进制文件。组件的多种格式,例如:Java JAR,WAR,EAR格式;普通ZIP或.tar.gz文件;其他软件包格式,例如NuGet软件包,Ruby gems,NPM软件包;可执行文件格式,例如.exe 或.sh 文件,Android APK文件,各种安装程序格式。

组件可以由多个嵌套组件本身组成。组件提供了所有构建块和功能。可以通过组装并添加自己的业务相关组件来创建功能强大的完整应用程序。在不同的工具链中,组件称为工件,程序包,捆绑包,归档和其他术语。概念和想法保持不变,组件用作通用术语。组件由一组特定值(坐标)标识。这些坐标的通用集是组,名称和版本的用法。这些坐标的名称和用法随所使用的工具链而变化。组件也可以成为其他元数据的基础。

三、 上传制品

<server>

<id>maven-hostd</id>

<username>admin</username>

<password>admin123</password>

</server>

注意使用mvn deploy 发布时,server.id == respository.id。

四、 集成jenkins上传制品

步骤:获取Jar包名称、读取pom文件、获取坐标信息、使用mvn deploy上传。

def jarName = sh returnStdout: true, script: "cd target;ls *.jar"

jarName = jarName - "\n"

def pom = readMavenPom file: 'pom.xml'

pomVersion = "${pom.version}"

pomArtifact = "${pom.artifactId}"

pomPackaging = "${pom.packaging}"

pomGroupId = "${pom.groupId}"

println("${pomGroupId}-${pomArtifact}-${pomVersion}-${pomPackaging}")

def mvnHome = tool "M2"

sh  """

cd target/

${mvnHome}/bin/mvn deploy:deploy-file -Dmaven.test.skip=true  \

-Dfile=${jarName} -DgroupId=${pomGroupId} \

-DartifactId=${pomArtifact} -Dversion=${pomVersion}  \

-Dpackaging=${pomPackaging} -DrepositoryId=maven-hostd \

-Durl=http://192.168.1.200:30083/repository/maven-hostd

"""

智齿客服