【发布时间】:2013-07-21 17:31:03
【问题描述】:
一位用户报告说我维护的一个 maven 插件不再适用于 maven 2(它在 maven 3 下运行得很好)。解析pom失败,报错
Cause: Class 'java.util.List' cannot be instantiated
快速谷歌表明这是 3.0 之前的 maven 模型中的一个错误,它影响了其他插件。
http://code.google.com/p/maven-samaxes-plugin/issues/detail?id=18
我最近通过为 List 参数指定表达式添加了对通过命令行设置值的支持,看来这已经触发了这个错误。
/**
* @parameter expression="${targetClasses}"
*/
protected List<String> targetClasses;
我可以通过将字段声明为具体的列表类型来解决这个问题,但是每个人都知道每次你这样做都会死去一个仙女。
除了取消对 maven 2 的支持或使用具体类型之外,是否有更好的解决方案来解决这个问题?
【问题讨论】:
-
annotations 呢?
-
@khmarbaise 感谢您的建议,但是如果我更新为使用注释,插件是否仍与 maven 2 兼容(这不是 maven 3 的功能)吗?如果是这样,是否有理由相信这会解决 maven 2 用户的原始问题?
-
是的。除了运行的 JVM,它必须至少是 JVM 1.5。 100% 确定您需要使用 maven 2 进行测试。我希望您不是在谈论 Maven 2.0.X 吗?
标签: java maven-2 maven-plugin