使用maven整合2个eclipse项目

Integrate 2 eclipse projects using maven

我的存储库中有一个 Web 项目,最近我收到了另一个项目,只是代码,我需要将其用作第一个项目的子模块(只有 java 个实体类)。类似于:

./web-project/.project
./entities/.project

因为我相信它会经常更改,所以我需要它仍然是一个单独的 eclipse 项目。我想要的是在 web-project 中使用 entities,就像我将 .jar 作为依赖项包含在内一样。

除了创建我自己的 maven 存储库并从那里获取 jars 之外,如果我正在使用 maven 构建这两个项目,是否有办法将它添加到我的构建路径中?

我不确定我是否完全理解这个问题。从 maven 生成 Eclipse 项目时,听起来你希望将依赖项目包含在 Eclipse 构建路径中。是吗?

如果是这样,我知道的唯一方法是从父 Maven 项目 运行 mvn eclipse:eclipse。也就是说,您需要创建一个 pom.xml 是某个目录,然后将您现有的两个项目都放在该目录下。类似于:

./parent-folder
  /pom.xml
  /web-project
    /pom.xml
  /entities
    /pom.xml

然后,当然,在 pom.xml 文件中声明适当的 Maven 依赖关系。

除了将 entities 声明为 web-project Maven 项目的 <dependency> 之外,我认为您不需要做任何事情。

这种关系确保 entities eclipse 项目源自动包含在 web-project 的构建路径中,只要您有:

  • 两个项目都导入到 Eclipse 中并使用 m2e 插件标记为 Maven 个项目

  • 已启用 Maven > Enable Workspace Resolution 选项

至于一起构建它们,您可以创建一个一次性父项目(如果您不想保留父项目),将这两个项目列为 modules。否则,您必须先构建 entities 项目并将其安装到本地存储库,然后再构建 web-project。但是,您将在 web-project 项目中看到对 entity class 的更改,因为您在其构建路径中拥有前者的源代码。

我终于解决了在构建 web-app 之前将构建的工件安装到本地 m2 存储库的问题。它适用于 eclipse 和 运行 从命令行构建。

在依赖项目 entities 中将以下插件添加到 install 构建步骤:

  <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
        <version>${maven-install-plugin.version}</version>
        <executions>
            <execution>
                <phase>install</phase>
                <goals>
                    <goal>install-file</goal>
                </goals>
                <configuration>
                    <groupId>${project.groupId}</groupId>
                    <artifactId>${project.artifactId}</artifactId>
                    <version>${project.version}</version>
                    <packaging>jar</packaging>
                    <file>${basedir}/target/${project.artifactId}-${project.version}.jar</file>
                </configuration>
            </execution>
        </executions>
    </plugin>

并像往常一样在 web-project POM 中声明依赖关系。