我有两个maven项目,我希望在构建到一个项目后将它们组合在一起。 我没有明智地创建这些项目,这两个项目是单独的maven项目。 以下是现有项目中的POM xml代码部分。
Project One pom.xml
<groupId>com.olex</groupId>
<artifactId>olex-reg</artifactId>
<version>1.0</version>
<packaging>war</packaging>
Project 2 pom.xml
<groupId>com.olex</groupId>
<artifactId>olex-qba</artifactId>
<version>1.0</version>
<packaging>war</packaging>
合并项目 pom.xml
<groupId>com.olex</groupId>
<artifactId>olex-war</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
我想将这些项目合并为olex-war
,一个完整的项目。
构建之后,我希望将所有代码复制到此olex-war
项目中。
如果有人知道这种情况,请建议/提供提示。
提前致谢。
答案 0 :(得分:2)
你可以从像这样的pom开始,将旧战争文件的所有内容提取到内容目录中。然后,您可以在新战争中打包该目录中的所有内容(web.xml和其他元数据除外)。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.olex</groupId>
<artifactId>olex-war</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>olex-war Maven Webapp</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>olex-war</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>unpack</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.olex</groupId>
<artifactId>olex-qba</artifactId>
<version>${project.version}</version>
<packaging>war</packaging>
</artifactItem>
<artifactItem>
<groupId>com.olex</groupId>
<artifactId>olex-reg</artifactId>
<version>${project.version}</version>
<packaging>war</packaging>
</artifactItem>
</artifactItems>
<excludes>WEB-INF/web.xml</excludes>
<includes>**/*.class, **/*.jar, **/*.properties</includes>
<outputDirectory>${project.build.directory}/content</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
答案 1 :(得分:0)
您应该手动合并项目。许多元素(比如配置文件)无论如何都需要手动合并,你要避免意外地从一个项目中丢失一些东西,因为另一个项目会安静地覆盖它。
如果没有版本控制系统来帮助您进行合并,这将是一项令人费解的令人费解的任务。
首先设置版本控制系统(VCS)。它在许多其他情况下也会有所帮助。我推荐git,但是如果你已经有另一个已经启动并运行它应该做得很好,我不会在这里使用任何花哨的特价。
然后为新项目创建一个空文件夹,并将第一个项目中的所有数据复制到其中。根据您的需要执行所有替换(web.xml,pom.xml,其他配置文件)并将其提交给VCS。
这会将所有文件的这个版本写入VCS,你不能再将它们丢失,所以如果你碰巧弄错了,不用担心,只需将所有更改还原到这一点。
然后将第二个项目的内容复制到其上,覆盖重复的所有内容。
现在你可以使用&#34;显示差异&#34; VCS的功能,以查看您需要合并的内容。很可能你可以在图形工具中这样做,这样可以很容易。
他们中的大多数将是&#34;未知&#34;也就是说,VCS中不存在新文件。您很可能只需将它们添加到VCS中即可完成。 更有趣的是那些被修改过的&#34;。这意味着该文件已经存在,另一个项目也包含它们。您必须将它们合并为一个从现在起对您的新项目有效的组合版本。
完成后,您应该准备好新项目所需的所有文件(包括pom.xml)。将它们提交给VCS以便将来不会失去这种状态。