On 12 March 2010 10:44, Brandon Atkinson <[email protected]>wrote:
> Guice servlet's 'servlet-api' dependency should be declared in 'provided' > scope. The sematics of this are described here: > > http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope > In short, a provided dependency is fetched and put in the compile and test > classpaths, but is not packaged, because it is expected to be provided at > runtime by the container/jvm/etc.. > > ... > <dependency> > <groupId>javax.servlet</groupId> > <artifactId>servlet-api</artifactId> > <scope>runtime</scope> > ^ that should read <scope>provided</scope> I believe (to avoid further confusion) > </dependency> > ... > > In this case, the inaccuracy in the pom is not such a big deal. An easy > way around this for guice-servlet users is to declare the servlet-api in > their pom as a provided dependency. Maven will then ignore the servlet-api > dependency during packaging. A purist would say declaring a transitive > dependency as a direct dependency in a parent project to make up for > inaccurate dependency declarations in a library isn't right because the > dependent project may not really use any classes in the dependency. > However, when using guice-servlet, the chances you don't depend on the > servlet api are slim, since the whole point is that you using it for writing > guicy servlet based apps. > > -Brandon > > > On Thu, Mar 11, 2010 at 7:16 PM, Dhanji R. Prasanna <[email protected]>wrote: > >> >> >> On Fri, Mar 12, 2010 at 7:10 AM, Brandon Atkinson < >> [email protected]> wrote: >> >>> I have had this problem before. >>> >>> Are you using maven by any chance? >>> >>> If so, make sure that you've made servlet-api a provided dependency. >>> >>> For some reason, guice-servlet's pom declares that it has a compile time >>> dependency on servlet-api. This causes the servlet-api classes to be loaded >>> into your war. Since there are two defined copies of the servlet api >>> classes (in two different class loaders) a CCE occurs. >>> >> >> messy =( >> >> what do you suggest we do to our pom to fix this? >> >> Dhanji. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "google-guice" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<google-guice%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-guice?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-guice%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
