`
shijunjuan
  • 浏览: 45305 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Eclipse 工作正常而java命令运行出错的一个坑

    博客分类:
  • Java
阅读更多

      昨天碰到一个让我很崩溃的问题。我在我的java程序里面调用MavenCli的API来执行一个maven命令。在Eclipse中运行一切正常。然后我用maven assebly把程序打成一个包含dependency的jar包,用java -jar 命令来执行这个程序的时候,却死活不工作了,出现以下的Exception:

 

 

org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:

 1) No implementation for org.eclipse.aether.RepositorySystem was bound.

   while locating org.apache.maven.artifact.resolver.DefaultArtifactResolver

   at ClassRealm[plexus.core, parent: null] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)

   at ClassRealm[plexus.core, parent: null] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)

   while locating org.apache.maven.artifact.resolver.ArtifactResolver

   while locating org.apache.maven.repository.legacy.LegacyRepositorySystem

   at ClassRealm[plexus.core, parent: null] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)

   at ClassRealm[plexus.core, parent: null] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)

   while locating org.apache.maven.repository.RepositorySystem

   ......  

 

       从这些错误看起来,像是少了什么Dependency。所以我就以为是Maven的Dependency有版本冲突,花了很多时间来替换测试,结果一点都没有用。

 

       后来在绝望之下,我只能尝试用maven exec:java的命令来运行这个程序。Bingo,工作了!后来跟同事交谈,了解到Assembly把Dependency的class文件全部打到jar里,有些情况下可能会导致class的冲突。下次知道了,如果还碰到这种情况,记得用maven exec:java命令来试试哦。

 

P.S.以下是我用来打包的maven assembly配置:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
     <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
     </descriptorRefs>
     <archive>
      <manifest>
       <mainClass>com.ebay.raptor.tools.DependencyValidator</mainClass>
      </manifest>
     </archive>
    </configuration>
    <executions>
     <execution>
      <id>make-assembly</id> <!-- this is used for inheritance merges -->
      <phase>package</phase> <!-- bind to the packaging phase -->
      <goals>
       <goal>single</goal>
      </goals>
     </execution>
    </executions>
   </plugin>

 

分享到:
评论

相关推荐

    Ubuntu 安装Eclipse 菜单无法使用解决办法

    今天安装了Ubuntu 13.10系统,作为一个Java程序猿, 第一件事当然是把eclipse装上。 在我的机器上, 将eclipse解压在/deve/eclipse目录: 在这个目录下, 执行一下命令启动eclipse: ./eclipse 但是当eclipse...

    joc eclipse plugin

    在Eclipse中使用Jocky也非常简单,任何一个Java工程,选中工程通过右键菜单,都可以出现Jocky的快捷菜单: 在Eclipse中的右键菜单&gt; 在Eclipse中的属性设置&gt; 事实上,在Eclipse中使用Jocky时,...

    java 混淆工具,不可逆 jocky 也许是最好的了

    在Eclipse中使用Jocky也非常简单,任何一个Java工程,选中工程通过右键菜单,都可以出现Jocky的快捷菜单: 在Eclipse中的右键菜单&gt; 在Eclipse中的属性设置&gt; 事实上,在Eclipse中使用Jocky时,Jocky也是...

    jocky 混肴编译rar包(ant和插件俩个版本)

    在Eclipse中使用Jocky也非常简单,任何一个Java工程,选中工程通过右键菜单,都可以出现Jocky的快捷菜单: 在Eclipse中的右键菜单&gt; 在Eclipse中的属性设置&gt; 事实上,在Eclipse中使用Jocky时,Jocky也是...

    网狐荣耀版开发使用常见问题解答

    一、申请短信通道,国内的短信通道很多,不同的通道速度不一样,我们在申请时要一个基本原则就是速度要快,基本上要发送即接收了,客户不可能等的。国内调查发现,客户等网页打开的时间是最长不超过5秒,短信接收的...

    尚筹网项目中遇到的错误,问题.docx

    36.老师讲要会看异常,后台框架里的异常,一般是后一个异常导致了前一个异常,所以看异常要最先看最后一个causeby:往往最后这个能解决99%问题。还有1%是xml文件写错了。 37. 252集测试2,我的roleOperator无法显示...

    jitsi-android-257

    下载了jitsi android的版本代码后,直接导入eclipse可能报错,需要先使用命令生成一下libs库。 官方网站的步骤:https://github.com/jitsi/jitsi-android 针对上面的步骤可能会遇到如下的错误: 1.当运行ant ...

    iuhyiuhkjh908u0980

    通过 activityCreator.py --out myproject your.package.name.ActivityName 命令可以生成一个project ,生成project下面有个bulid.xml 文件,那个东西就可以帮你打包生成了。 来看下ant是怎么做的。 ...

    Android adb 出错解决方法

     运行android程序控制台输出 [2012-07-18 16:18:26 - ] The connection to adb is down, and a severe error has occured.  [2012-07-18 16:18:26 - ] You must restart adb and Eclipse.  [2012-07-18 16:18:...

Global site tag (gtag.js) - Google Analytics