繁体   English   中英

使用Maven整合2个Eclipse项目

[英]Integrate 2 eclipse projects using maven

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

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

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

除了创建自己的Maven存储库并从那里获取jar之外,考虑到我正在使用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的buildpath中:

  • 将两个项目导入eclipse并使用m2e插件标记为Maven项目

  • Maven > Enable Workspace Resolution选项已启用

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

我最终解决了在构建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中声明依赖项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM