GitHub

Maven Central GitHub CI Reproducible Builds License

Asks the user a question on the console. This is what an interactive Maven plugin uses to prompt — the archetype plugin's "Define value for property…" comes from here.

Prompter handles the common cases: a plain question, a question with a default, a question restricted to a list of allowed answers, and a password prompt that does not echo. InputHandler and OutputHandler are the lower-level pieces underneath.

Status

Maintained, quietly. The API is small and settled; expect dependency updates rather than new features.

Using it

<dependency>
  <groupId>org.codehaus.plexus</groupId>
  <artifactId>plexus-interactivity-api</artifactId>
  <version>1.5.1</version>
</dependency>

Check the badge above for the current version. Note the artifact is plexus-interactivity-api; plexus-interactivity is the aggregator.

@Inject
Prompter prompter;
String name = prompter.prompt( "Project name" );
String scope = prompter.prompt( "Scope", List.of( "compile", "test" ), "compile" );
String secret = prompter.promptForPassword( "Password" );

A plugin that prompts should check MavenSession.getRequest().isInteractiveMode() first, so it does not hang a batch-mode build.

Requirements

Java 8 or later.

Documentation

Contributing

See CONTRIBUTING.md. In short: mvn verify builds, and run mvn spotless:apply before pushing or CI will fail on formatting.

Please report security vulnerabilities privately — see SECURITY.md, not a public issue.

Read the original on github.com ↗