从 jenkins 部署 Maven 到 s3 bucket
Deploy Maven to s3 bucket from jenkins
我对 CI/CD 实现完全陌生。我正在尝试创建一个将我的 jar 打包并部署到 s3 存储桶的管道。
请注意:
在 aws 控制台中,我创建的 IAM 用户具有对 s3 的完全访问权限,并且策略模拟器运行良好。
我已经在 jenkins 中创建了我的 s3 配置文件并且 "test connection" 运行良好。
“向 aws 发布”阶段失败,出现以下情况。任何人都可以在这里指导我。无法看到我缺少的内容。
Downloading from s3.artifacts.snapshot: s3://panda.bucket.net/snapshot/com/panda/panda-app/1.0-
SNAPSHOT/maven-metadata.xml
[WARNING] s3://panda.bucket.net/snapshot - Connection refused
[WARNING] Could not transfer metadata com.panda:panda-app:1.0-SNAPSHOT/maven-metadata.xml from/to
s3.artifacts.snapshot (s3://panda.bucket.net/snapshot): Could not connect to repository
[INFO] Logged off - panda.bucket.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
我的詹金斯文件:
pipeline {
agent any
tools {
maven 'maven'
jdk 'jdk1.8'
}
stages {
stage('SCM') {
steps {
git 'https://username:password@gitlab.com/my-repo/panda-app'
}
}
stage('Build') {
steps {
bat 'mvn clean compile'
}
}
stage('Release to aws') {
steps {
bat 'mvn deploy'
}
}
}}
我在 pom 中的构建和分发配置:
<properties>
<java.version>1.8</java.version>
<artifactrepo.url>panda.bucket.net</artifactrepo.url>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>com.allogy.maven.wagon</groupId>
<artifactId>maven-s3-wagon</artifactId>
<version>1.2.0</version>
</extension>
</extensions>
</build>
<distributionManagement>
<repository>
<id>s3.artifacts.release</id>
<url>s3://${artifactrepo.url}/release</url>
</repository>
<snapshotRepository>
<id>s3.artifacts.snapshot</id>
<url>s3://${artifactrepo.url}/snapshot</url>
</snapshotRepository>
</distributionManagement>
Settings.xml
<settings>
<server>
<id>s3.artifacts.release</id>
<username>MY_ACCESS_KEY</username>
<password>MY_SECRET</password>
<filePermissions>AuthenticatedRead</filePermissions>
</server>
<server>
<id>s3.artifacts.snapshot</id>
<username>MY_ACCESS_KEY</username>
<password>MY_SECRET</password>
<filePermissions>AuthenticatedRead</filePermissions>
</server>
你真的需要在maven中部署到S3吗?如果您可以选择 Jenkins 管道,那么在 Jenkins 管道上执行此操作会更简单。
您需要 AWS steps plugin.
pipeline {
agent any
tools {
maven 'maven'
jdk 'jdk1.8'
}
stages {
stage('SCM') {
steps {
git 'https://username:password@gitlab.com/my-repo/panda-app'
}
}
stage('Build') {
steps {
bat 'mvn clean compile' //maybe package goal to leave the artifact ready to be released
}
}
stage('Release to aws') {
steps {
withAWS(region:'yourS3Region', credentials:'awscredentialsID'){
s3Upload(bucket:"yourBucketName", workingDir:'target', includePathPattern:'**/*'); // pick your jar or whatever you need
}
}
}
}}
我对 CI/CD 实现完全陌生。我正在尝试创建一个将我的 jar 打包并部署到 s3 存储桶的管道。
请注意: 在 aws 控制台中,我创建的 IAM 用户具有对 s3 的完全访问权限,并且策略模拟器运行良好。 我已经在 jenkins 中创建了我的 s3 配置文件并且 "test connection" 运行良好。
“向 aws 发布”阶段失败,出现以下情况。任何人都可以在这里指导我。无法看到我缺少的内容。
Downloading from s3.artifacts.snapshot: s3://panda.bucket.net/snapshot/com/panda/panda-app/1.0-
SNAPSHOT/maven-metadata.xml
[WARNING] s3://panda.bucket.net/snapshot - Connection refused
[WARNING] Could not transfer metadata com.panda:panda-app:1.0-SNAPSHOT/maven-metadata.xml from/to
s3.artifacts.snapshot (s3://panda.bucket.net/snapshot): Could not connect to repository
[INFO] Logged off - panda.bucket.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
我的詹金斯文件:
pipeline {
agent any
tools {
maven 'maven'
jdk 'jdk1.8'
}
stages {
stage('SCM') {
steps {
git 'https://username:password@gitlab.com/my-repo/panda-app'
}
}
stage('Build') {
steps {
bat 'mvn clean compile'
}
}
stage('Release to aws') {
steps {
bat 'mvn deploy'
}
}
}}
我在 pom 中的构建和分发配置:
<properties>
<java.version>1.8</java.version>
<artifactrepo.url>panda.bucket.net</artifactrepo.url>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>com.allogy.maven.wagon</groupId>
<artifactId>maven-s3-wagon</artifactId>
<version>1.2.0</version>
</extension>
</extensions>
</build>
<distributionManagement>
<repository>
<id>s3.artifacts.release</id>
<url>s3://${artifactrepo.url}/release</url>
</repository>
<snapshotRepository>
<id>s3.artifacts.snapshot</id>
<url>s3://${artifactrepo.url}/snapshot</url>
</snapshotRepository>
</distributionManagement>
Settings.xml
<settings>
<server>
<id>s3.artifacts.release</id>
<username>MY_ACCESS_KEY</username>
<password>MY_SECRET</password>
<filePermissions>AuthenticatedRead</filePermissions>
</server>
<server>
<id>s3.artifacts.snapshot</id>
<username>MY_ACCESS_KEY</username>
<password>MY_SECRET</password>
<filePermissions>AuthenticatedRead</filePermissions>
</server>
你真的需要在maven中部署到S3吗?如果您可以选择 Jenkins 管道,那么在 Jenkins 管道上执行此操作会更简单。
您需要 AWS steps plugin.
pipeline {
agent any
tools {
maven 'maven'
jdk 'jdk1.8'
}
stages {
stage('SCM') {
steps {
git 'https://username:password@gitlab.com/my-repo/panda-app'
}
}
stage('Build') {
steps {
bat 'mvn clean compile' //maybe package goal to leave the artifact ready to be released
}
}
stage('Release to aws') {
steps {
withAWS(region:'yourS3Region', credentials:'awscredentialsID'){
s3Upload(bucket:"yourBucketName", workingDir:'target', includePathPattern:'**/*'); // pick your jar or whatever you need
}
}
}
}}