2014-03-24 28 views
2

注意:我使用的是Maven 3+,请参阅注释。使用WAS7的Maven安装

我试图编译使用Maven加上WAS7一个项目,但遗憾的是似乎收到以下错误:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
[ERROR] Error executing Maven. 
[ERROR] com.google.inject.ProvisionException: Guice provision errors: 

1) Error in custom provider, java.lang.TypeNotPresentException: Type javax.enterprise.inject.Typed not present 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.sonatype.plexus.components.cipher.PlexusCipher 
    while locating org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.sonatype.plexus.components.sec.dispatcher.SecDispatcher annotated with @com.google.inject.name.Named(value=maven) 
    while locating org.apache.maven.settings.crypto.DefaultSettingsDecrypter 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.settings.crypto.SettingsDecrypter 
    while locating org.apache.maven.repository.legacy.LegacyRepositorySystem 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.repository.RepositorySystem 
    while locating org.apache.maven.project.DefaultProjectBuildingHelper 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.project.ProjectBuildingHelper 
    while locating org.apache.maven.project.DefaultProjectBuilder 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.project.ProjectBuilder 
    while locating org.apache.maven.DefaultMaven 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.Maven 

1 error 
     role: org.apache.maven.Maven 
    roleHint: 
[ERROR] Caused by: Guice provision errors: 

1) Error in custom provider, java.lang.TypeNotPresentException: Type javax.enterprise.inject.Typed not present 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.sonatype.plexus.components.cipher.PlexusCipher 
    while locating org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.sonatype.plexus.components.sec.dispatcher.SecDispatcher annotated with @com.google.inject.name.Named(value=maven) 
    while locating org.apache.maven.settings.crypto.DefaultSettingsDecrypter 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.settings.crypto.SettingsDecrypter 
    while locating org.apache.maven.repository.legacy.LegacyRepositorySystem 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.repository.RepositorySystem 
    while locating org.apache.maven.project.DefaultProjectBuildingHelper 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.project.ProjectBuildingHelper 
    while locating org.apache.maven.project.DefaultProjectBuilder 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.project.ProjectBuilder 
    while locating org.apache.maven.DefaultMaven 
    at ClassRealm[plexus.core, parent: null] 
    at ClassRealm[plexus.core, parent: null] 
    while locating org.apache.maven.Maven 

1 error 
[ERROR] Caused by: Type javax.enterprise.inject.Typed not present 
[ERROR] Caused by: javax.enterprise.inject.Typed 

我已经证实,JRE系统库是为7通过检查,这是JavaSE的-1.6在我的情况下指向WAS7。

我试过寻找javax.enterprise.inject.Typed,它似乎并没有出现在任何地方,但它是JavaEE6的一部分,这是我构建的(我认为)。

+6

WAS7仅支持Java EE 5,而不支持Java EE 6.所以你不会有任何运气。 – SpaceTrucker

+0

我明白了,谢谢!我想我犯了一个错字查找环境。我似乎没有明确包括guice在任何地方虽然..这真的让我困惑.. – Jakub

+0

它可能是传递性依赖?尝试使用'mvn dependency:tree'来查看它来自哪里。 –

回答

2

所以基本上发生了什么是我正在使用与myeclipse打包的Maven嵌入式版本。

这个版本的maven是v3.0.4,它使用guice而不是plexus来注入依赖关系。 Guice使用JavaEE6的组件,这些组件并不存在于由WAS7扩展的JavaEE5中。

所以基本上对这个问题一点决心

+0

指向哪里? – Vogel612

0

SpaceTrucker的评论是现货。缺少的类是JavaEE 6的一部分,而WAS7仅支持JavaEE 5.有关功能比较,请参见The Wikipedia entry

+0

是的,我刚刚注意到,奇怪的是我没有明确地在任何地方使用guice。所以我将不得不弄清楚我猜测哪些依赖关系。 感谢您的帮助! :) – Jakub

0

转到RAD - >窗口 - >首选项 - >的Maven - >安装

添加您的maven文件夹路径

现在去项目和右键单击项目 - > Maven - >更新项目