Thanks Willem. So I guess I'll just add the extra test scope dependency, even though it seems a little strange given no direct use of it.
Thanks, Frank. "Jiang, Ning \(Willem\)" <[EMAIL PROTECTED]> wrote on 01/04/2007 10:50:15 PM: > Hi Frank, > > Maven help us to manage the dependencies by using the pom.xml which > we can define the dependency relationship. > The dependency relationship can be used when maven need to setup the > class path or do the packaging. > Here is some note for "provided" that you can get from the book > "Better Builds with Maven": > > "You should note that you're using a provided scope instead of the > default compile scope. The reason is that this dependency will > already be present in the environment (being the J2EE application > server) where your EJB will execute. You make this clear to Maven by > using the provided scope; this prevents the EAR module from > including the J2EE JAR when it is packaged.Even though this > dependency is provided at runtime, it still needs to be listed in > the POM so that the code can be compiled." > > And if your module A unit test need the C jar in the runtime, > because you had set C jar as the provided scope in the other module > B, you own A module will not take this dependency from module B even > your have the dependence from B. So you need to add the C jar's > dependency as the <scope> test </scope> in the module A's pom.xml :). > > > Willem. > > > > -----Original Message----- > From: Frank Budinsky [mailto:[EMAIL PROTECTED] > Sent: Fri 1/5/2007 11:08 > To: [email protected] > Subject: Maven dependencies question > > I think I need some help form somebody with a better understanding (than > me) of how maven dependencies work. > > Because the Java sdo/impl project includes an optional stax > loader/serializer it includes this in its pom.xml file: > > <!-- dependencies for optional StAX functions --> > <dependency> > <groupId>stax</groupId> > <artifactId>stax-api</artifactId> > <version>1.0.1</version> > <scope>provided</scope> > <optional>true</optional> > </dependency> > > One of the new implementation classes in the the sdo/impl project also > uses the StAX function itself, internally in its implementation. > > Now, in the sdo/tools project, we have a test program that calls the > implementation class that uses the StAX stuff (indirectly though an SDO > helper interface). Note that the test program in the sdo/tools project has > no import or direct use of any StAX interfaces. > > However, when we now run mvn in the sdo/tools project, the test program, > mentioned above, fails with the following error: > > java.lang.NoClassDefFoundError: > javax/xml/stream/XMLStreamException > > I was able to fix the problem by copying the stax dependency from the > sdo/impl pom.xml file and adding it to the pom.xml in the sdo/tools > project, but this seems a bit ridiculous, since as I mentioned above, the > use of stax is really only in the sdo/impl project. > > Can anybody see what the problem might be, or suggest how to fix this? > > Thanks in advance, > Frank. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
