Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
maven如何处理假包装类型?_Maven - Fatal编程技术网

maven如何处理假包装类型?

maven如何处理假包装类型?,maven,Maven,我正在学习一个有点复杂的maven构建。我发现一个模块使用了一种伪造的包装类型,具体来说就是“定制战争”。如果我执行: mvn -e -X clean install maven这样抱怨: [DEBUG] Error looking up lifecycle mapping to retrieve optional mojos. Lifecycle ID: clean. Error: Component descriptor cannot be found in the componen

我正在学习一个有点复杂的maven构建。我发现一个模块使用了一种伪造的包装类型,具体来说就是“定制战争”。如果我执行:

mvn -e -X clean install
maven这样抱怨:

[DEBUG] Error looking up lifecycle mapping to retrieve optional mojos. Lifecycle 
  ID: clean. Error: Component descriptor cannot be found in the component repository:
  org.apache.maven.lifecycle.mapping.LifecycleMappingcustom-war.
但是,它似乎继续执行clean:clean,因此它必须做出一些决策,确定哪些目标映射到生命周期阶段。有人能提供一些关于maven在面对虚假包装类型时的决策见解吗


我想我应该补充一点,这个自定义模块似乎是“定义自己的默认生命周期绑定”;我发现了一个component.xml文件,它定义了默认生命周期各个阶段的目标绑定。有鉴于此,错误似乎在抱怨没有为clean声明绑定,但是component.xml的格式似乎不支持这一点。

clean阶段一直运行到完成,因为绑定到此阶段的目标与打包无关

另一方面,响应命令
mvn install
应该做什么取决于包装。Maven遇到了一个未知的“定制战争”包装,因此它举手投降


参见Maven。

但它似乎在说,参见
生命周期ID:clean
,它在启动clean生命周期时举手。我是否误读了这里的内容?您能否成功运行
mvn clean
?这可能是因为它在清理过程中似乎失败了,但在POM的初始解析过程中,当它遇到未知的打包时,它确实失败了。IIRC要支持新的打包类型,您需要将插件配置为提供扩展。我看到另一篇关于使用新包装的帖子()。也许这提供了一些提示。