2010-05-12 43 views
4

我的(简单)war项目在命令行中使用mvn:package生成良好,但无法使用maven通过sonatype插件在eclipse中生成。 我得到的错误是:eclipse/maven/sonatype war build可以在命令行运行,但不能在eclipse中运行

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1-alpha-1:war (default-war) on project shoploops_webapp: Execution default-war of goal org.apache.maven.plugins:maven-war-plugin:2.1-alpha-1:war failed: dependenciesInfo : dependenciesInfo 
---- Debugging information ---- 
message    : dependenciesInfo : dependenciesInfo 
cause-exception  : com.thoughtworks.xstream.mapper.CannotResolveClassException 
cause-message  : dependenciesInfo : dependenciesInfo 
class    : org.apache.maven.plugin.war.util.WebappStructure 
required-type  : org.apache.maven.plugin.war.util.WebappStructure 
path    : /webapp-structure/dependenciesInfo 
line number   : 14 

我真的有两个问题 1)如何解决这个问题? 2)为什么mvn:package在命令行上工作正常,但不通过插件?他们在工作方式上有什么区别,这样会出现这样的错误?

非常感谢!

编辑:在调试模式下运行它的堆栈跟踪:

Caused by: com.thoughtworks.xstream.converters.ConversionException: dependenciesInfo : dependenciesInfo 
---- Debugging information ---- 
message    : dependenciesInfo : dependenciesInfo 
cause-exception  : com.thoughtworks.xstream.mapper.CannotResolveClassException 
cause-message  : dependenciesInfo : dependenciesInfo 
class    : org.apache.maven.plugin.war.util.WebappStructure 
required-type  : org.apache.maven.plugin.war.util.WebappStructure 
path    : /webapp-structure/dependenciesInfo 
line number   : 14 
------------------------------- 
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:63) 
    at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45) 
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46) 
    at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:117) 
    at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.java:29) 
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:846) 
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:833) 
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:781) 
    at org.apache.maven.plugin.war.util.WebappStructureSerializer.fromXml(WebappStructureSerializer.java:48) 
    at org.apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:346) 
    at org.apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:317) 
    at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:166) 
    at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:130) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:105) 
    ... 15 more 
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: dependenciesInfo : dependenciesInfo 
    at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:49) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:76) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:60) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:76) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:26) 
    at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:34) 
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.determineType(AbstractReflectionConverter.java:296) 
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:178) 
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:125) 
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:56) 
    ... 28 more 
+0

谢谢帕斯卡!你已经救了我的理智了! 我更新eclipse以使用与我从命令行构建相同版本的maven,现在它完美地构建:-) – Jeremy 2010-05-12 17:27:22

回答

4

为什么mvn:package做工精细在命令行,而不是通过插件?他们在工作方式上有什么区别,这样会出现这样的错误?

短的版本是,m2eclipse的不使用,除非你告诉他这样做(这将是我的建议),您在命令行中使用相同的版本。如果你想知道,m2eclipse使用嵌入式Maven 3(Maven Embedder 3.0.0.200912160759)。

我该如何解决这个错误?

实际上,问题记录在http://jira.codehaus.org/browse/MWAR-187,它提供了几种解决方法。

  • 降级Maven的战争插件2.1-α-1
  • 通过修改Maven的战争插件配置

    <configuration> 
        <useCache>false</useCache> 
    </configuration> 
    

禁用缓存。我想,在配置M2Eclipse不使用Maven Embedder(但在CLI上使用的版本)也可以解决问题,这是我的建议。您会在窗口>首选项> Maven中找到该设置。

1

你需要去preferences->maven->installation并选择你的外部安装。我正在使用springsource工具套件。但是maven配置路径应该和其他eclipse类型相同。

2

我得到了同样的问题,但做了mvn install。在命令行中工作良好,但在Eclipse中失败。

实际发生的是显然我的webapp-cache.xml文件已损坏。我解决了运行mvn clean install的问题。

相关问题