Maven Goals
JBehave supports accessing the Embedder functionality via Maven
goals:
Maven goals support the following properties:
- sourceDirectory: defaults to src/main/java
- testSourceDirectory: defaults to src/test/java
- outputDirectory: defaults to target/classes
- testOutputDirectory: defaults to target/test-classes
- scope: [compile|test], defaults to compile
- includes: list of include patterns
- excludes: list of exclude patterns
- metaFilters: list of meta filters
- systemProperties: list of system properties to set during execution
- batch: [true|false], defaults to false
- skip: [true|false], defaults to false
- ignoreFailureInStories: [true|false], defaults to false
- ignoreFailureInView: [true|false], defaults to false
- generateViewAfterStories: [true|false], defaults to true
- storyTimeoutInSecs: defaults to 300
- threads: defaults to 1
- embedderClass: defaults to Embedder.
- injectableEmbedderClass: defaults to
null
- storyFinderClass: defaults to StoryFinder
In addition, the unpack-view-resources goal supports the properties:
- resourceArtifactIds: list of resource artifactIds, optional (defaults to {"jbehave-site-resources", "jbehave-core"})
- resourceTypes: list of resource types, optional (defaults to {"zip"})
- resourceIncludes: the pattern of includes when unpacking each resource, optional (defaults to includes all)
- resourceExcludes: the pattern of excludes when unpacking each resource, optional (defaults to excludes none)
- viewDirectory: the output directory of the resources, optional (defaults to the one configured in the Embedder StoryReporterBuilder)
An example of a typical Maven plugin usage is:
The default scope is compile, which means that the stories
will be looked up in the POM source directory. If the scope is set to test
the stories will be looked up in the POM test source directory.
ClassLoading Logging Frameworks
JBehave uses FreeMarker to generate template-based reports.
FreeMarker uses its own version of a logging facade framework which
auto-discovers different logging frameworks, notably JDK Logging and
Apache log4j. When using the JBehave Maven Plugin, and depending on the
rest of your POM configuration, you may need to add Apache log4j as
Plugin Dependency (as opposed to the Project Dependency) if you find
that it's not able to load its classes, e.g.:
ClassLoading Groovy Meta Matcher
When using the JBehave Maven Plugin with a Groovy Meta Matcher you need to
configure Groovy as Plugin Dependency (as opposed to the Project Dependency):