- ユーザーがテキストを入力できるようにコマンド プロンプトを提供するために Maven 実行フローを一時停止する方法はありますか。
- 次に、提供されたテキストをMavenプロパティに保存したいと思います。
- ユーザー入力をマスクできれば、それはボーナスになります。
これは、pom にパスワードを保存するのを避けるのに非常に役立ちます。
どうもありがとう
これは、pom にパスワードを保存するのを避けるのに非常に役立ちます。
どうもありがとう
maven-antrun-pluginを使用してユーザー入力をキャッチできます。次の例は、現在のユーザーに新しいプロジェクトバージョンを尋ねる方法を示しています。
<profile>
<id>change-version</id>
<build>
<defaultGoal>validate</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>catch-new-version</id>
<goals>
<goal>run</goal>
</goals>
<phase>validate</phase>
<configuration>
<target>
<!-- == catch new version in a prompt == -->
<input
message="Please enter the new SNAPSHOT version (current is '${project.version}'): "
addproperty="new-user-version" />
</target>
<exportAntProperties>true</exportAntProperties>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.8.4</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>set-new-version</id>
<goals>
<goal>set</goal>
</goals>
<phase>validate</phase>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
<newVersion>${new-user-version}</newVersion>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
この機能を実行するには、次のコマンドを呼び出します。
mvn -N -P change-version
いくつかの説明:
次のように pom にプロパティを追加すると:
<properties>
<db.password></db.password>
</properties>
そして、あなたのpomで次のように使用してください:
<someTag>${db.password}</someTag>
次に、コマンド ラインからプロパティを設定できます。
$ mvn -Ddb.password="DonaldDuck" install
ただし、コマンド プロンプトのようにインタラクティブではありません。