我有一个导入到 Eclipse 中的 Maven Web 项目。我有另一个 web 项目依赖的 maven 项目(生成一个 jar 文件)。
从命令行执行时,这两个项目都可以正常工作。mvn 包创建一个 war 文件,该文件从 web 项目的 maven 存储库中提取它所依赖的 jar。mvn package 在为库运行时会创建一个有效的 jar 文件。
当我将库导入 Eclipse 时,m2e 识别出 Web 项目依赖于库并更新项目的一部分以利用两个 maven 项目都托管在单个 Eclipse 工作区中这一事实。Web 项目的“Java 构建路径”首选项的“库”选项卡的“Maven 依赖项”部分会删除库 jar 文件并将其替换为库项目。随着库在 Eclipse 中更新,Web 项目无需安装/部署库即可识别这些更改。
当我尝试在 Eclipse 中运行 Web 应用程序时会出现问题。因为 Eclipse 实际上是针对 Eclipse 中的库版本构建 Web 项目,所以它不会从 maven 存储库部署库文件,它会创建一个新的 jar 文件,它是 Eclipse 中库的当前版本的快照。所有这一切对我来说通常都很有效,但是在我目前正在处理的项目中,Eclipse 正在创建的 jar 文件存在问题。它似乎没有插入库的类文件,而是使用了我的 Maven 项目的“src”目录并将其压缩为 jar 文件。jar 文件的内容类似于:
-main
-java
-com
-... *.java
-resources
-...
-test
-java
-com
-... *.java
我希望它看起来更像:
-com
-... *.class
由于我之前已经成功使用过这种类型的项目,所以我试图弄清楚是否需要配置一些东西,或者我是否刚刚遇到了错误。
我在 Eclipse Indigo(内部版本号:20120216-1857)上使用 m2e 的最新更新(1.0.200.20111228-1245)。