tutorial proyecto mvn español ejecutar desde crear consola compile como comandos maven plugins input maven-plugin command-prompt

maven - proyecto - mvn compile command



¿Hay alguna forma de capturar la entrada del usuario en maven y asignarla a una propiedad maven? (2)

Si agrega una propiedad en su pom así:

<properties> <db.password></db.password> </properties>

Y úsala en tu pom en algún lugar como este:

<someTag>${db.password}</someTag>

Luego puede establecer la propiedad desde la línea de comando:

$ mvn -Ddb.password="DonaldDuck" install

Pero no es interactivo como un símbolo del sistema.

  1. ¿Hay alguna forma de pausar el flujo de ejecución de maven para proporcionar un símbolo del sistema para que el usuario pueda ingresar texto?
  2. Entonces me gustaría que el texto proporcionado se almacene en las propiedades maven.
  3. Si se pudiera enmascarar la entrada del usuario, eso sería una ventaja.

Esto sería realmente útil para evitar el almacenamiento de contraseñas en pom.

Muchas gracias


Puede capturar una entrada de usuario usando maven-antrun-plugin . El siguiente ejemplo muestra cómo preguntar al usuario actual la nueva versión del proyecto.

<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>

Puede ejecutar esta función llamando a:

mvn -N -P change-version

Algunas explicaciones