A maven plugin to export JAX-RS annotated classes and methods to Postman collection.
Requirements
- Java 8+
- Maven 3.5.0+
In you ~/.m2/settings.xml
file, add the following:
<pluginGroups>
<pluginGroup>net.cpollet.maven.plugins</pluginGroup>
</pluginGroups>
Then, to generates a file ${project.artifactId}-${project.version}.json
containing the postman collection in the target
folder:
$ mvn postman:generate -Dpostman.packagesToScan=net.cpollet \
-Dpostman.baseUrl=http://localhost \
-Dpostman.basicAuth.username=username \
-Dpostman.basicAuth.password=password
You can execute this command from the jaxrs
folder for instance.
postman.baseUrl
mandatory. A valid URL that will be used as the base URL for all discovered endpoints;postman.packagesToScan
optional. If not set, the plugin will scan all packages;postman.basicAuth.*
optional.
The CLI equivalent XML configuration is:
<plugin>
<groupId>net.cpollet.maven.plugins</groupId>
<artifactId>postman-maven-plugin</artifactId>
<version>...</version>
<configuration>
<packagesToScan> <!-- optional -->
<value>net.cpollet</value>
<!-- ... -->
</packagesToScan>
<environments>
<environment>
<name>default</name>
<baseUrl>http://localhost</baseUrl>
<basicAuth> <!-- optional -->
<username>username</username>
<password>password</password>
</basicAuth>
<environment>
<!-- ... -->
<environments>
</configuration>
<executions> <!-- optional -->
<execution>
<id>generate-postman</id>
<phase>package</package>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
The <execution>
section is optional, as the plugin binds it's generate
goal to the package
phase.
$ mvn clean install
Tu run the integration tests, use the run-its
profile. Make sure you have the newman-assert
and rodolpheche/wiremock
docker images:
$ cd newman-assert && build.sh && cd ..
$ docker pull rodolpheche/wiremock
Then:
$ mvn clean install -Prun-its
When gpg: signing failed: Inappropriate ioctl for device
, executing export GPG_TTY=$(tty)
might help.
To validate the checks sonatype executes before tagging, update the pom.xml
to remove the -SNAPSHOT
. Then, execute
$ mvn clean deploy -Prelease
$ mvn clean release:clean release:prepare
$ mvn release:perform
Release from web UI