我正在学习一个有点复杂的maven构建。我发现了一个模块,它使用了一种虚假的打包类型,具体地说就是"custom-war“。如果我执行:
mvn -e -X clean installmaven抱怨道:
[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的格式似乎不支持这一点。
发布于 2011-11-09 04:42:33
clean阶段一直运行到完成,因为绑定到此阶段的目标独立于打包。
另一方面,响应命令mvn install应该执行的操作取决于打包。Maven遇到了一个未知的“自定义战争”的包装,因此它举起了手。
参见Maven上的correlation of phases to packaging。
https://stackoverflow.com/questions/8053198
复制相似问题