title: How to solve "protoc did not exit cleanly"?
body: <p>I am compiling this project <a href="https://github.com/Akdeniz/google-play-crawler" rel="nofollow">googleplaycrawler</a></p>
  
  <p>but Eclipse keep complaining </p>
  
  <blockquote>
    <p>protoc did not exit cleanly. Review output for more information. (com.google.protobuf.tools:maven-protoc-plugin:0.3.1:compile:default:generate-sources)</p>
  </blockquote>
  
  <p>BELOW is <code>pom.xml</code></p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt;
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  
  &lt;groupId&gt;com.akdeniz&lt;/groupId&gt;
  &lt;artifactId&gt;googleplaycrawler&lt;/artifactId&gt;
  &lt;version&gt;0.3&lt;/version&gt;
  &lt;packaging&gt;jar&lt;/packaging&gt;
  
  &lt;name&gt;Google Play Crawler&lt;/name&gt;
  &lt;url&gt;https://github.com/Akdeniz/google-play-crawler&lt;/url&gt;
  
  &lt;description&gt;Play with Google Play API :)&lt;/description&gt;
  
  &lt;properties&gt;
      &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
      &lt;project.reporting.outputEncoding&gt;UTF-8&lt;/project.reporting.outputEncoding&gt;
  &lt;/properties&gt;
  
  &lt;dependencies&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
          &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
          &lt;version&gt;4.2.2&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;commons-logging&lt;/groupId&gt;
          &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
          &lt;version&gt;1.1.1&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;net.sourceforge.argparse4j&lt;/groupId&gt;
          &lt;artifactId&gt;argparse4j&lt;/artifactId&gt;
          &lt;version&gt;0.2.2&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
          &lt;artifactId&gt;httpcore&lt;/artifactId&gt;
          &lt;version&gt;4.2.2&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
          &lt;artifactId&gt;httpclient-cache&lt;/artifactId&gt;
          &lt;version&gt;4.2.2&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
          &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
          &lt;version&gt;4.2.2&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.apache.mina&lt;/groupId&gt;
          &lt;artifactId&gt;mina-core&lt;/artifactId&gt;
          &lt;version&gt;2.0.7&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
          &lt;artifactId&gt;slf4j-simple&lt;/artifactId&gt;
          &lt;version&gt;1.7.2&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;com.google.protobuf&lt;/groupId&gt;
          &lt;artifactId&gt;protobuf-java&lt;/artifactId&gt;
          &lt;version&gt;2.5.0&lt;/version&gt;
      &lt;/dependency&gt;
  
      &lt;dependency&gt;
          &lt;groupId&gt;org.testng&lt;/groupId&gt;
          &lt;artifactId&gt;testng&lt;/artifactId&gt;
          &lt;version&gt;6.1.1&lt;/version&gt;
          &lt;scope&gt;test&lt;/scope&gt;
      &lt;/dependency&gt;
  
  &lt;/dependencies&gt;
  
  &lt;pluginRepositories&gt;
      &lt;pluginRepository&gt;
          &lt;id&gt;protoc-plugin&lt;/id&gt;
          &lt;url&gt;http://sergei-ivanov.github.com/maven-protoc-plugin/repo/releases/&lt;/url&gt;
      &lt;/pluginRepository&gt;
  &lt;/pluginRepositories&gt;
  
  &lt;build&gt;
      &lt;plugins&gt;
          &lt;plugin&gt;
              &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
              &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
              &lt;version&gt;3.1&lt;/version&gt;
              &lt;configuration&gt;
                  &lt;source&gt;1.7&lt;/source&gt;
                  &lt;target&gt;1.7&lt;/target&gt;
                  &lt;encoding&gt;UTF-8&lt;/encoding&gt;
              &lt;/configuration&gt;
          &lt;/plugin&gt;
          &lt;plugin&gt;
              &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
              &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
              &lt;version&gt;2.3&lt;/version&gt;
              &lt;executions&gt;
                  &lt;execution&gt;
                      &lt;goals&gt;
                          &lt;goal&gt;attached&lt;/goal&gt;
                      &lt;/goals&gt;
                      &lt;phase&gt;package&lt;/phase&gt;
                      &lt;configuration&gt;
                          &lt;descriptorRefs&gt;
                              &lt;descriptorRef&gt;jar-with-dependencies&lt;/descriptorRef&gt;
                          &lt;/descriptorRefs&gt;
                          &lt;archive&gt;
                              &lt;manifest&gt;
                                  &lt;mainClass&gt;com.akdeniz.googleplaycrawler.cli.googleplay&lt;/mainClass&gt;
                              &lt;/manifest&gt;
                          &lt;/archive&gt;
                      &lt;/configuration&gt;
                  &lt;/execution&gt;
              &lt;/executions&gt;
          &lt;/plugin&gt;
          &lt;plugin&gt;
              &lt;groupId&gt;com.google.protobuf.tools&lt;/groupId&gt;
              &lt;artifactId&gt;maven-protoc-plugin&lt;/artifactId&gt;
              &lt;version&gt;0.3.1&lt;/version&gt;
  
              &lt;configuration&gt;
                  &lt;protocExecutable&gt;protoc&lt;/protocExecutable&gt;
                  &lt;protoSourceRoot&gt;${project.basedir}/src/main/protobuf/&lt;/protoSourceRoot&gt;
                  &lt;languageSpecifications&gt;
                      &lt;LanguageSpecification&gt;
                          &lt;language&gt;JAVA&lt;/language&gt;
                          &lt;outputDirectory&gt;${project.basedir}/src/main/java&lt;/outputDirectory&gt;
                      &lt;/LanguageSpecification&gt;
                  &lt;/languageSpecifications&gt;
              &lt;/configuration&gt;
              &lt;executions&gt;
                  &lt;execution&gt;
                      &lt;goals&gt;
                          &lt;goal&gt;compile&lt;/goal&gt;
                      &lt;/goals&gt;
                  &lt;/execution&gt;
              &lt;/executions&gt;
          &lt;/plugin&gt;
      &lt;/plugins&gt;
  &lt;/build&gt;
  </code></pre>
  
  <p></p>
  
  <p>The Error Message:</p>
  
  <pre class="lang-none prettyprint-override"><code>at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:165)
  ... 20 more
  Caused by: java.lang.NoClassDefFoundError: Lorg/sonatype/aether/RepositorySystem;
      at java.lang.Class.getDeclaredFields0(Native Method)
      at java.lang.Class.privateGetDeclaredFields(Class.java:2397)
      at java.lang.Class.getDeclaredFields(Class.java:1806)
      at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:661)
      at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:366)
      at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:165)
      at com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:609)
      at com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:565)
      at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:551)
      at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:865)
      at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:790)
      at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:278)
      at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:210)
      at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:986)
      at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1019)
      at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:982)
      at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1032)
      at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
      at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
      at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55)
      at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
      at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
      at org.eclipse.sisu.plexus.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:133)
      at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:109)
      at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
      at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
      at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47)
      at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:997)
      at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1047)
      at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:993)
      at com.google.inject.Scopes$1$1.get(Scopes.java:59)
      at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
      at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
      at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:260)
      at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:252)
      at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:462)
      at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:120)
      ... 20 more
  Caused by: java.lang.ClassNotFoundException: org.sonatype.aether.RepositorySystem
      at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
      at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
      at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235)
      at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
      ... 57 more
  </code></pre>