2010-05-12 56 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的問題。

相關問題