使用Eclipse WTP和m2eclipse时,可以将所有依赖项复制到WEB-INF / lib(通过在Deployment程序集中添加“maven dependencies”) . 但是,也会复制具有“提供”范围的依赖关系,例如el-api和jsp-api . 这扰乱了容器并且无法启动 .
没有复制“提供” jar 的任何解决方案?
你必须安装 m2eclipse-wtp 这是m2eclipse的额外插件 . 它将为你完成这项工作 . 安装m2eclipse-wtp后,只需右键单击 project ---> Maven --> Update Project Configuration ,您就会发现所提供范围的库不再受WTP容器的攻击 .
m2eclipse-wtp
project ---> Maven --> Update Project Configuration
有关安装说明,请参阅this . 我建议安装最新版本的m2eclipse-wtp(针对Eclipse 3.6进行测试),因为它解决了以前版本中的一些主要错误 .
编辑:感谢弗雷德的纠正
您需要将Maven库添加到WTP的部署程序集......
右键单击您的项目,选择“属性”
从属性菜单中单击“部署程序集”
单击“添加” - >“Java构建路径条目”,然后单击“下一步”
在列表中选择“Maven Libraries”,然后单击“完成”
范围的依赖性"provided"不应由Maven在最终装配中打包 .
但是,请检查是否还有其他依赖项"compile",它们也声明了与"compile"相同的依赖项 . 换句话说,很可能 el-api 和 jsp-api 被作为传递依赖进入 .
el-api
jsp-api
最简单的检查方法是使用m2eclipse的Dependency Hierarchy视图 .
3 回答
你必须安装
m2eclipse-wtp
这是m2eclipse的额外插件 . 它将为你完成这项工作 . 安装m2eclipse-wtp后,只需右键单击project ---> Maven --> Update Project Configuration
,您就会发现所提供范围的库不再受WTP容器的攻击 .有关安装说明,请参阅this . 我建议安装最新版本的m2eclipse-wtp(针对Eclipse 3.6进行测试),因为它解决了以前版本中的一些主要错误 .
编辑:感谢弗雷德的纠正
您需要将Maven库添加到WTP的部署程序集......
右键单击您的项目,选择“属性”
从属性菜单中单击“部署程序集”
单击“添加” - >“Java构建路径条目”,然后单击“下一步”
在列表中选择“Maven Libraries”,然后单击“完成”
范围的依赖性"provided"不应由Maven在最终装配中打包 .
但是,请检查是否还有其他依赖项"compile",它们也声明了与"compile"相同的依赖项 . 换句话说,很可能
el-api
和jsp-api
被作为传递依赖进入 .最简单的检查方法是使用m2eclipse的Dependency Hierarchy视图 .