title: Maven doesn't seem to be downloading the whole jar
body: <p>I am following this <a href="https://code.google.com/p/selenium/wiki/GettingStarted" rel="nofollow noreferrer">tutorial</a> to create tests using Selenium. I have added the <code>com.google.guava</code> dependency to my <code>pom</code> like this: </p>
  
  <pre><code>&lt;dependency&gt;
      &lt;groupId&gt;com.google.guava&lt;/groupId&gt;
      &lt;artifactId&gt;guava&lt;/artifactId&gt;
      &lt;version&gt;r09&lt;/version&gt;
  &lt;/dependency&gt;
  </code></pre>
  
  <p>However, maven seems to be downloading this jar incompletely. There seem to be classes missing. One such is the <code>com.google.common.base.Optional</code>. On the <a href="http://mvnrepository.com/artifact/com.google.guava/guava/r09" rel="nofollow noreferrer">maven repo page</a>, towards the bottom under Source Control there is a <a href="https://code.google.com/p/guava-libraries/source/browse#git/guava/src/com/google/common/base" rel="nofollow noreferrer">link</a> that shows code with the <code>Optional</code> class. But when I look under Maven Dependencies in eclipse, I see this:</p>
  
  <p>(there is no class named <code>Optional</code>) </p>
  
  <p><img src="https://i.stack.imgur.com/NFzTF.png" alt="No class named optional"></p>
  
  <p><strong>Where are the rest of the classes?</strong></p>
  
  <p>I have tried re-downloading the jar multiple times but it has had no effect.</p>
  
  <p>Some more information:</p>
  
  <p>I am adding the selenium server dependency like this:</p>
  
  <pre><code>&lt;dependency&gt;
      &lt;groupId&gt;org.seleniumhq.selenium&lt;/groupId&gt;
      &lt;artifactId&gt;selenium-server&lt;/artifactId&gt;
      &lt;version&gt;2.41.0&lt;/version&gt;
  &lt;/dependency&gt; 
  </code></pre>
  
  <p>StackTrace:</p>
  
  <pre><code>java.lang.NoClassDefFoundError: com/google/common/base/Optional
  at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.loadCustomExtension(NewProfileExtensionConnection.java:156)
  at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.addWebDriverExtensionIfNeeded(NewProfileExtensionConnection.java:148)
  at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:80)
  at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246)
  at org.openqa.selenium.remote.RemoteWebDriver.&lt;init&gt;(RemoteWebDriver.java:114)
  at org.openqa.selenium.firefox.FirefoxDriver.&lt;init&gt;(FirefoxDriver.java:191)
  at org.openqa.selenium.firefox.FirefoxDriver.&lt;init&gt;(FirefoxDriver.java:186)
  at org.openqa.selenium.firefox.FirefoxDriver.&lt;init&gt;(FirefoxDriver.java:182)
  at org.openqa.selenium.firefox.FirefoxDriver.&lt;init&gt;(FirefoxDriver.java:95)
  at com.amsgeo.mspWebManager.web.ui.SeleniumTest.testingSelenium(SeleniumTest.java:17)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:601)
  at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
  at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
  at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
  at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
  at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
  at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
  at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
  at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
  at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
  at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
  at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
  at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
  at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  Caused by: java.lang.ClassNotFoundException: com.google.common.base.Optional
  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
  ... 33 more
  </code></pre>