Java および Kotlin 用の Maven
前提条件
対象イメージ
|
Maven プロジェクトを使用する場合の一般的なタスクは、プロジェクトをビルドしてテストを実行し、その後 Maven アーティファクトを公開することです。Space Automation は Maven のヘルパー関数を提供しないため、オートメーションスクリプトは mvn
ツールを直接使用する必要があります。
プロジェクトをビルドしてテストを実行する
プロジェクトをビルドしてテストを実行するには、mvn clean install
コマンドを実行する必要があります。.space.kts
でこれを行う方法は次のとおりです。
Maven アーティファクトを Space パッケージに公開する
Maven プロジェクトのアーティファクトをパッケージリポジトリに公開するには、アーティファクトのプロパティを構成し、リポジトリを参照し、認証資格情報を指定する必要があります。この構成は pom.xml
ファイルで実行されます。課題は、セキュリティ上の理由から、Maven リポジトリのユーザー資格情報をプロジェクトディレクトリではなく、ユーザーのディレクトリ内の別の settings.xml
ファイルに保存する必要があることです。解決策は、settings.xml
をプロジェクトディレクトリに配置し、環境変数を通じてユーザー資格情報を提供することです。
プロジェクトに Maven リポジトリがあることを確認してください。
プロジェクトの
pom.xml
でリポジトリ設定を構成します。通常、行う必要があるのは、Space Packages リポジトリパラメーターを使用してdistributionManagement
ノードを追加することだけです。<!-- other content --> <distributionManagement> <repository> <id>space-maven</id> <!-- provide url via the 'repositoryUrl' command-line arg --> <url>${repositoryUrl}</url> </repository> </distributionManagement> <!-- other content -->プロジェクトのルートに
settings.xml
を作成します。このファイルには、コマンドライン引数として指定するパッケージリポジトリへの認証情報が含まれている必要があります。<!-- other content --> <settings> <servers> <server> <id>space-maven</id> <!-- provide credentials via the command-line args: --> <!-- 'spaceUsername' and 'spacePassword' --> <username>${spaceUsername}</username> <password>${spacePassword}</password> </server> </servers> </settings>プロジェクトルートで、ビルドスクリプトを含む
.space.kts
ファイルを作成します。job("Build, run tests, publish") { container(displayName = "Run publish script", image = "maven:3-openjdk-8-slim") { // url of a Space Packages repository env["REPOSITORY_URL"] = "https://maven.pkg.jetbrains.space/mycompany/p/key/my-maven-repo" shellScript { content = """ echo Build and publish artifacts... set -e -x -u mvn versions:set -DnewVersion=1.0.${'$'}JB_SPACE_EXECUTION_NUMBER mvn deploy -s settings.xml \ -DrepositoryUrl=${'$'}REPOSITORY_URL \ -DspaceUsername=${'$'}JB_SPACE_CLIENT_ID \ -DspacePassword=${'$'}JB_SPACE_CLIENT_SECRET """ } } }ここで:
REPOSITORY_URL
環境変数を介してリポジトリ URL を指定します。settings.xml
がプロジェクトのルートディレクトリに保存されるように指定します。JB_SPACE_EXECUTION_NUMBER
変数を使用して、アーティファクトのバージョンを1.0.build_number
として指定します。JB_SPACE_CLIENT_ID
およびJB_SPACE_CLIENT_SECRET
環境変数を通じて Space Automation 資格情報を提供します。
Maven アーティファクトを外部リポジトリに公開する
アーティファクトを外部 Maven リポジトリに公開することは、Space Packages リポジトリに公開することとほぼ同じです。唯一の違いは、資格情報をシークレットとパラメーターストレージのリポジトリに保存する必要があることです。
Maven アーティファクトを Space パッケージに公開するからの手順 1 と 2 を繰り返します。
パラメーターとシークレットを作成するは、スクリプトが外部リポジトリにアクセスするために使用する必要があるユーザー名とパスワードを保存します。
.space.kts
ファイルを編集します。job("Build, run tests, publish") { container(displayName = "Run publish script", image = "maven:3-openjdk-8-slim") { env["REPOSITORY_URL"] = "https://externalrepo.example.com" env["USERNAME"] = Params("repo_user") env["PASSWORD"] = Secrets("repo_password") shellScript { content = """ echo Build and publish artifacts... set -e -x -u mvn versions:set -DnewVersion=1.0.${'$'}JB_SPACE_EXECUTION_NUMBER mvn deploy -s settings.xml \ -DrepositoryUrl=${'$'}REPOSITORY_URL \ -DspaceUsername=${'$'}JB_SPACE_CLIENT_ID \ -DspacePassword=${'$'}JB_SPACE_CLIENT_SECRET """ } } }
関連ページ:
![](https://pleiades.io/icons/jetbrains_logo.png)
Maven リポジトリの作成
プロジェクトに移動するリポジトリを作成する場所。プロジェクトのサイドバーで、パッケージを選択します。パッケージページで、新規リポジトリをクリックします。新しいパッケージリポジトリウィンドウで、リポジトリ設定を指定します。タイプ:Maven リポジトリを選択します。名前と説明: リポジトリ名 (一意の識別子である必要があります) と説明を指定します。アクセス: 認証されていないユーザーがリポジトリから読み取れるようにする場合は、Public を選択します。それ以外の場合は、Private を選択する...
![](https://resources.jetbrains.com/help/img/space/secretsMavenRepo.png)
Java および Kotlin 用の Gradle
前提条件 Java または Kotlin で書かれたプロジェクトがあります。プロジェクトでは Gradle を使用します。Gradle ラッパーはプロジェクトのルートディレクトリに存在します。アーティファクトを Space パッケージに公開する場合は、プロジェクトに Maven リポジトリがあることを確認してください。対象イメージ JRE/JDK バージョン 11 以降を含むイメージ。例:amazoncorretto イメージ。通常、プロジェクトを構築してテストを実行するために必要なのは、プロジェクト...