如果您使用Google Cloud并将Java用于项目,那么Google Cloud Storage是托管团队工件的理想场所。
它很容易设置,而且很便宜。 如果您对它们的功能不特别感兴趣,那么它比设置现有存储库选项(jfrog,nexus,archiva等)要简单得多。
首先,您需要指定支持Google云存储的Maven旅行车。 我们将使用Google储物车 。
让我们开始创建一个Maven项目
mvn archetype:generate -DgroupId=com.test.apps -DartifactId=GoogleWagonTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
我们将添加一个简单的服务。
package com.test.apps;public class HelloService {public String sayHello() {return "Hello";}
}
然后,我们将添加Maven旅行车,该旅行车会将我们的二进制文件上传并提取到Google云存储中。
<build><extensions><extension><groupId>com.gkatzioura.maven.cloud</groupId><artifactId>google-storage-wagon</artifactId><version>1.0</version></extension></extensions></build>
然后,我们将创建将托管我们的工件的Google云存储桶。
我们的存储桶称为mavenrepository
现在,我们已经在Google中设置了存储分区,我们将在我们的Maven项目中设置分发管理。
<distributionManagement><snapshotRepository><id>my-repo-bucket-snapshot</id><url>gs://mavenrepository/snapshot</url></snapshotRepository><repository><id>my-repo-bucket-release</id><url>gs://mavenrepository/release</url></repository></distributionManagement>
从Maven文档
正如repositories元素在POM中指定Maven可以下载远程工件以供当前项目使用的位置和方式的地方,而distributionManagement指定此项目在部署时将在何处(以及如何)到达远程存储库。 如果未定义snapshotRepository,则存储库元素将用于快照分发。
下一步是最关键的,这与向Google Cloud进行身份验证有关。
您需要在系统中设置gcloud命令行,并且必须发出登录名
“ gcloud auth login –brief”具有可以访问我们之前创建的存储桶的帐户。
另一种方法是使用GOOGLE_APPLICATION_CREDENTIALS环境变量。 您可以使用此GOOGLE_APPLICATION_CREDENTIALS来设置Google应用程序凭据文件的路径。 凭证文件还应该能够访问我们之前创建的存储桶。
现在最容易部署的部分。
mvn deploy
现在,既然已经部署了工件,则可以通过指定存储库和旅行车在另一个存储库中使用它。
<repositories><repository><id>my-repo-bucket-snapshot</id><url>gs://mavenrepository/snapshot</url></repository><repository><id>my-repo-bucket-release</id><url>gs://mavenrepository/release</url></repository></repositories><build><extensions><extension><groupId>com.gkatzioura.maven.cloud</groupId><artifactId>google-storage-wagon</artifactId><version>1.0</version></extension></extensions></build>
而已! 下一步,您的工件将被maven通过Google云存储下载,并用作新项目中的依赖项。
翻译自: https://www.javacodegeeks.com/2018/04/host-your-maven-artifacts-using-google-cloud-storage.html