AWS CodeArtifact配置(Maven私有库)

问题

由于后台Java代码需要,发布jar到maven私有库后,另外一个Java项目,通过maven私有库再拉去这个jar使用。这里就需要部署一个maven私有库。

1. 创建域

打开CodeArtifact主页,开始创建域,如下图:

创建dev域,如下图:

按照上述可以,依次创建test,uat,prod域。最后结果,如下图:

2.创建存储库

点击"创建存储库",如下图:
设置名称,如下图:

下一步设置域,如下图:

点击创建存储库,如下图:

创建完成后,点击连接说明,如下图:

3.代码集成测试

3.1拉取

接下来,我们在本地Spring项目中拉去代码配置,主要依据如下图配置:

pom.xml

在Spring项目的pom.xml中设置maven私有库,如下图:

主要是添加如下内容:

xml 复制代码
<repositories>
    <repository>
        <id>dev-maven</id>
        <url>https://dev-xxxx.d.codeartifact.us-east-1.amazonaws.com/maven/maven</url>
    </repository>
</repositories>

注意这里的id dev-maven

settings.xml

打开文件~/.m2/setting.xml,添加如下内容:

xml 复制代码
<server>
  <id>dev-maven</id>
  <username>aws</username>
  <password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
</server>

注意这里的id dev-maven与pom.xml文件中是一样的。其中的环境变了CODEARTIFACT_AUTH_TOKEN是通过如下命令获得:

bash 复制代码
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain dev --domain-owner xxx --region us-east-1 --query authorizationToken --output text`

到这里spring项目中拉取maven私有库,就没问题了。

3.2发布

pom.xml

在项目pom.xml,添加如下内容即可:

xml 复制代码
<distributionManagement>
  <repository>
    <id>dev-maven</id>
    <name>dev-maven</name>
    <url>https://dev-xxxx.d.codeartifact.us-east-1.amazonaws.com/maven/maven/</url>
  </repository>
</distributionManagement>

运行mve deploy命令,就可以发布自己的jar到私有maven库了。

4.CodeBuild中使用

竟然在Spring项目中使用了私有库,自然就需要调整CodeBuild的配置,我们先找到已经正在使用的CodeBuild角色,如下图:

找到正在使用的codebuild角色后,添加codebuild对codeartifact的AWSCodeArtifactReadOnlyAccess读权限,如下图:

创建自定义codeartifact push权限策略

权限策略内容如下:

json 复制代码
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "codeartifactPublish",
			"Effect": "Allow",
			"Action": [ "codeartifact:PublishPackageVersion",
                      "codeartifact:PutPackageMetadata"
                      ],
			"Resource": "*"
		}
	]
}

具体配置如下图:

设置名称,如下图:

创建完成后,将该策略,也绑定到codebuild使用角色中,最后角色权限策略如下图:

接下来,这需要修改codebuild的构建脚本,主要是添加如下内容:

yaml 复制代码
pre_build:
  commands:
    - pip3 install awscli --upgrade --user
    - export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`

到这里就是AWS上面的Maven私有库的基本使用方式。

参考:

相关推荐
不吃香菜学java8 小时前
苍穹外卖-删除菜品
java·spring boot·spring·tomcat·log4j·maven
zhojiew9 小时前
[INFRA] EMR集群中Hive和Spark集成Glue Data Catalog过程的深入分析
hive·hadoop·spark·aws·bigdata
亚马逊云开发者9 小时前
我用 Lambda Durable Functions 把五个 Lambda 缩成了一个,代码量砍半
aws
学不完的10 小时前
ZrLog 博客系统部署指南(无 War 包版,Maven 构建 + 阿里云镜像优化)
java·linux·nginx·阿里云·maven
亚马逊云开发者12 小时前
异构 GPU 混合部署 Whisper,我用 HyperPod 一个集群搞定了
aws
小江的记录本13 小时前
【泛型】泛型:泛型擦除、通配符、上下界限定
java·windows·spring boot·后端·spring·maven·mybatis
拄杖忙学轻声码13 小时前
maven引入本地jar包示例(非仓库引入)
java·maven·jar
csdn5659738501 天前
Java打包时,本地仓库有jar 包,Maven打包却还去远程拉取
java·maven·jar
亚马逊云开发者1 天前
模型搜完网页就"脑算"数字?用 Dynamic Filtering 让它老老实实写代码
aws
亚马逊云开发者1 天前
老板让我迁 Graviton,我用 AI 工具几分钟搞定了迁移评估
aws