【发布时间】:2014-03-24 13:26:27
【问题描述】:
注意:我使用的是 Maven 3+,请参阅 cmets。
我正在尝试使用 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 系统库是 WAS 7,方法是检查它是 JavaSE-1.6,在我的例子中指向 WAS7。
我曾尝试寻找 javax.enterprise.inject.Typed,但它似乎没有出现在任何地方,但它是 JavaEE6 的一部分,这是(我认为)WAS 7 的构建基础。
【问题讨论】:
-
WAS7 只支持 Java EE 5,不支持 Java EE 6。所以你不会有任何运气。
-
我明白了,谢谢!我想我在查找环境时打错了。不过,我似乎并没有明确地在任何地方包含 guice.. 这真的让我感到困惑..
-
会是传递依赖吗?试试
mvn dependency:tree看看它来自哪里。 -
我开始怀疑它是我自己使用的 maven 版本,经过一些额外的谷歌搜索后,我发现 Maven 3+ 使用 guice 进行依赖注入而不是 plexus。这是不得已而为之的事情,但我会尝试将 maven 带回 2.2.1,看看会发生什么。
-
我已经证实了我的怀疑,切换到 maven 2.2.1 解决了这个问题!我会这样更新答案。
标签: java spring maven guice websphere-7