【问题标题】:m2eclipse and WTP and adding local project sourcem2eclipse 和 WTP 以及添加本地项目源
【发布时间】:2010-04-01 00:09:29
【问题描述】:

我在 eclipse 中有一个 spring mvc 项目,它的设置是使用 maven。我可以解决所有外部依赖项,但现在我想在我的工作区中包含另一个本地项目。通常,我会通过 java 构建路径执行此操作,并添加项目引用。但如果我手动执行此操作,m2eclipse 只会从我的类路径文件中删除这些引用。

我假设这是因为 maven 想要处理所有依赖项。所以我在本地项目(我想要包含的源文件)上启用了依赖项管理,现在当我添加依赖项时,这个项目会显示出来,并将其添加为 jar 类型(这是正确的)。我还运行了 maven-package 来创建源项目的快照。但是 jar 永远不会添加到 maven 库列表中,并且项目不会构建,因为它找不到类。

我做错了什么? 谢谢您的帮助!

【问题讨论】:

    标签: eclipse maven-2 m2eclipse eclipse-wtp


    【解决方案1】:

    Eclipse 中 Maven 项目的配置是由 M2Eclipse 从 POM 中包含的元数据派生的,因此如果您有两个项目,ProjectA 和 ProjectB,并且您希望将 ProjectB 作为 ProjectA 的依赖项,你需要在ProjectA的POM中声明ProjectB,即添加一个依赖:

    <dependency>
      <groupId>group.id.of.b</groupId>
      <artifactId>project-b</artifactId>
      <version>1.2.3-SNAPSHOT</version>
    </dependency>
    

    如果您想依赖工作区中的项目(而不是通过本地存储库依赖工件),右键单击 ProjectA,然后转到 Properties > Maven 并确保您选择了 Resolve Dependencies from Workspace 项目,如下图所示:

    alt text http://img530.imageshack.us/img530/98/screenshot001do.png

    【讨论】:

    • 您好,感谢您的明确解释。我已经取得了进展,但仍然存在问题。我按照你说的做了,现在我可以看到当我在pom中添加对本地项目的依赖时,我可以看到一个项目文件夹图标弹出到“Web App Libraries”文件夹中,其中一些依赖项(jar)是还补充说。但是,我无法单击库并查看类,并且我的项目仍然无法运行,因为它找不到类。为了使课程可用,是否还需要做其他事情?
    • 另外,我在本地代码项目上重新运行了 maven-package 命令,生成的 jar 快照确实有类——有什么建议吗?
    【解决方案2】:

    无法再发表评论,但在阅读更多内容后,似乎“解决工作区依赖关系”仅在这些项目也由 Maven 管理的情况下才有效。如果要添加一个不在 maven 中的本地项目怎么办?

    【讨论】:

    • 因此,使用正常的 Java EE 模块依赖项和 Java 构建路径,在不打开“解决工作区依赖项”的情况下,包括外部项目就可以正常工作。唯一的问题是在 pom.xml 中的任何更改或为不同的配置文件重建后,Maven 将删除这些引用。我的解决方案是为配置文件问题创建自定义运行配置文件,因此我不需要使用不同的配置文件在本地清理/构建,但是对 pom.xml 的更改仍然意味着我必须手动重新添加依赖项:(
    【解决方案3】:

    您可能需要在 WTP 项目的 pom.xml 中添加本地项目(使用它的 pom.xml artifactId)作为依赖项,并打开 Workspace Dependency resolution?

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2011-10-22
      • 2011-08-22
      • 2010-11-01
      • 2011-10-29
      • 2011-03-05
      相关资源
      最近更新 更多