我的存储库中有一个Web项目,最近我收到了另一个项目,只是代码,我需要将其用作第一个项目的子模块(只是java实体类)。类似的东西:
./web-project/.project
./entities/.project
由于我相信它会经常被改变,我仍然需要它仍然是一个单独的日食项目。我想要的是使用entities
中的web-project
,就像我已将.jar
作为依赖项一样。
除了创建我自己的maven repo并从那里获取jar之外,有没有办法将它添加到我的构建路径中,因为我使用maven来构建这两个项目?
答案 0 :(得分:0)
我不确定我完全理解这个问题。听起来您希望在从maven生成Eclipse项目时将依赖项目包含在Eclipse构建路径中。是吗?
如果是这样,我知道这样做的唯一方法是从父maven项目运行mvn eclipse:eclipse。也就是说,您需要创建一个pom.xml是某个目录,然后将两个现有项目放在其下面。类似的东西:
./parent-folder
/pom.xml
/web-project
/pom.xml
/entities
/pom.xml
然后,当然,在pom.xml文件中声明适当的maven依赖项。
答案 1 :(得分:0)
除了将entities
声明为<dependency>
Maven项目的web-project
之外,我不认为您还需要做任何其他事情。
此关系确保entities
eclipse项目源自动包含在web-project
的构建路径中,只要您拥有:
使用Maven
插件将两个项目导入eclipse并标记为m2e
个项目
启用Maven > Enable Workspace Resolution
选项
至于将它们组合在一起,您可以创建一个丢弃的父项目(如果您不想保留父项目)将这两个项目列为module
。否则,您必须构建entities
项目并在构建web-project
之前将其安装到本地存储库。但是,您会在entity
项目中看到web-project
类的更改,因为您的构建路径中包含以前的源代码。
答案 2 :(得分:0)
在构建m2
之前,我终于解决了将构建的工件安装到本地web-app
存储库的问题。它适用于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中像往常一样声明依赖关系。