いくつかのプロパティを定義した非常に単純な maven 記述子があります。
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<properties>
<it.port>8080</it.port>
</properties>
</project>
it.port
次のコマンドでプロパティをオーバーライドできます。
$ mvn -Dit.port=8181 verify
ただし、次のコマンドは期待どおりに機能しません。
$ MAVEN_OPTS="-Dit.port=8181" mvn verify
これはシステム変数を JVM に渡しますが、maven はこのプロパティとテストに指定されたデフォルト値をオーバーライドすることを拒否します (8080)。元の問題は、TeamCity (アウト CI サーバー) がシステム変数を JVM に渡すMAVEN_OPTS
ため、プロパティのオーバーライドが機能しないことです。
Maven プロパティをMAVEN_OPTS
環境変数でオーバーライドできますか?