Of course, adding the dependency to the maven plugin dependencies in the POM), like advertised for logging frameworks in jbehave documentation<http://jbehave.org/reference/latest/maven-goals.html>, also "solves" the problem.
-- Brian On Mon, Jul 2, 2012 at 10:53 PM, Brian <[email protected]> wrote: > Hi, > > I've created a dumb project on github using a jbehave artifact: > https://github.com/bclozel/jbehave-scope-provided > Maven > documentation<http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope>says > scope=provided dependencies are within compile + test classpaths. > JBehave embedder is using both depending on configuration. > > mvn --version >> Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100) >> > > With this configuration, my embedder classpath does not contain the > javax.servlet JAR. When the dependency scope is changed to "compile", then > this JAR is listed in classpath elements. > > Any pointer here would be really helpful. > > Thanks, > > -- Brian > > > > On Mon, Jul 2, 2012 at 4:58 PM, Mauro Talevi > <[email protected]>wrote: > >> Hi Brian, >> >> can you provide us with a sample project (with pom.xml and the simplest >> source possible) reproducing this issue? >> >> Thanks >> >> >> On 02/07/2012 15:51, Brian wrote: >> >> Hello there >> >> I've been trying to use jbehave on a project and I ran into some >> problems. >> When running the maven goal, I got the following error: >> >> [ERROR] Failed to execute goal >>> org.jbehave:jbehave-maven-plugin:3.6.7:run-stories-as-embeddables >>> (default-cli) on project springmvc-router: Execution default-cli of goal >>> org.jbehave:jbehave-maven-plugin:3.6.7:run-stories-as-embeddables failed: A >>> required class was missing while executing >>> org.jbehave:jbehave-maven-plugin:3.6.7:run-stories-as-embeddables: >>> javax/servlet/http/HttpServletRequest >> >> >> It looks like jbehave's Embedder classloader can't locate >> the HttpServletRequest. This dependency is declared in my main POM like >> this: >> >> <dependency> >>> <groupId>javax.servlet</groupId> >>> <artifactId>servlet-api</artifactId> >>> <version>2.5</version> >>> <scope>provided</scope> >>> </dependency> >> >> >> If I ever change the scope to "compile", I get another error saying: >> >> Caused by: java.lang.InstantiationException: >>> org.myproject.OneOfMyProjectClasses >>> at java.lang.Class.newInstance0(Class.java:340) >>> at java.lang.Class.newInstance(Class.java:308) >>> at >>> org.jbehave.core.embedder.EmbedderClassLoader.newInstance(EmbedderClassLoader.java:37) >>> ... 24 more >> >> >> >> Is there a typo/bug in my configuration? >> I've browsed jbehave-maven-plugin (AbstractEmbedderMojo to be precise) >> but couldn't anything on dependencies in provided scope. Should I open an >> issue about that? >> >> This is the maven config I've added to my POM: >> >>> >>> <plugin> >>> <groupId>org.jbehave</groupId> >>> <artifactId>jbehave-maven-plugin</artifactId> >>> <version>${jbehave.version}</version> >>> <executions> >>> <execution> >>> <id>run-stories-as-embeddables</id> >>> <phase>integration-test</phase> >>> <configuration> >>> <scope>test</scope> >>> <includes> >>> <include>**/MyStories.java</include> >>> </includes> >>> </configuration> >>> <goals> >>> <goal>run-stories-as-embeddables</goal> >>> </goals> >>> </execution> >>> </executions> >>> </plugin> >> >> >> Thanks >> -- Brian >> >> >> >> >
