私は、JenkinsFileパイプラインスクリプトを使用してJenkinsでSpringブートプロジェクトを構築しています。MavenがJenkins環境変数を読み取ることができません
このSpringプロジェクトでは、Spring Bootの親pomファイルが使用されています。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
</parent>
私は(ネクサス経由でプロキシされるために起こる)、カスタムリポジトリに、上記の親を含むすべての私の依存関係を、ホストします。そのリポジトリの定義が私のローカル開発マシンで以下の
<repositories>
<repository>
<id>nexus</id>
<url>${env.REPO_URL}</url>
</repository>
</repositories>
のように見える、私は私のリポジトリのURLにREPO_URL
環境変数を設定しています。ローカルでは、私はmvn install
これはちょうどうまく動作します。 MavenはリポジトリURLを自分の環境で定義したものに解決し、問題は発生しません。
私の問題は、REPO_URL
の環境変数を定義するためにJenkinsFileパイプラインスクリプトを使用しようとすると発生します。ジェンキンススクリプトの定義では、それは次のようになります。
stringParam(name: 'REPO_URL', value: 'www.my.repo')
と私は単にJenkinsFileに構築:
sh "mvn clean package"
Mavenのは、次のエラーが生成されますから、
[FATAL] Non-resolvable parent POM for org.my.project:my-project:1.0.0: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.4.1.RELEASE from/to nexus (${env.REPO_URL}): Cannot access ${env.REPO_URL} with type default using the available connector factories: BasicRepositoryConnectorFactory and 'parent.relativePath' points at wrong local POM @ line 12, column 10
をエラーメッセージの表示は、Mavenがその環境変数にアクセスできないかのようです。しかし、私がecho
を実行すると、私のJenkinsFileに変数に正しい値が設定されます。したがって、この変数はポピュレートされていますが、何らかの理由でMavenが正しく解析していません。
Jenkinsを使用して、このリポジトリのMavenに環境変数を提供する際に間違っていることはありますか?