如何将war文件添加到另一个java Web应用程序依赖项?
我有web maven项目。 Project的输出是war
文件。 我想将此war
文件添加为project_b的依赖项。
project_b的pom.xml
文件有一个插件如下:
... true org.apache.maven.plugins maven-war-plugin 2.3 geoserver ${project.build.directory}/geoserver WEB-INF/lib/servlet-api*.jar true true core ${project.build.finalname} ${project.version} ${iteration} ${maven.build.timestamp} ${build.commit.id} package war ...
如何使用org.itsme
, spring3-mvc-maven-xml-hello-world
, war
将web应用程序的war
添加到project_b和1.0-SNAPSHOT
?
在Maven中,添加依赖只是一块蛋糕。 看看下面的pom.xml。
4.0.0 ykyuen project-apple jar 1.0 project-apple ykyuen project-banana 1.0
设置上述依赖项与在project-apple中导入project-banana.jar相同。
现在我有另一个名为project-orange的Maven Web应用程序项目,其打包类型等于war。 添加上述依赖关系链接根本不起作用,因为Java没有将.war文件视为类路径。
要解决这个问题,有两种方法:
-
创建一个Maven模块,其中包含带有jar包装的项目橙色类。 现在,您可以将新的Maven模块视为正常依赖项。
-
配置maven-war-plugin,以便在构建.war文件时构建.jar文件。 在war项目的节点下添加以下代码。 以下是一个例子。
。
... maven-war-plugin 2.1.1 true classes ...
运行mvn install后,您可以在目标文件夹中找到以下存档文件
- 项目orange.war
- 项目 – 橙 – classes.jar
现在,您可以编辑project-apple的pom.xml以添加新的依赖项。
4.0.0 ykyuen project-apple jar 1.0 project-apple ykyuen project-banana 1.0 ykyuen project-orange 1.0 classes
参考 : http : //eureka.ykyuen.info/2009/10/30/maven-dependency-on-jarwar-package/
最近,我也遇到了同样的问题。 这就是我非常简单地解决它的方法。
第1步:在原始项目的pom中(不依赖于任何项目)以这样的方式配置maven war插件,它将构建war以及jar。 当我们进行mvn clean install时,jar将被上传到maven存储库。
我的pom的第一部分看起来像这样:
4.0.0 com.pancharatna TestWebApp **jar ** 1.0-SNAPSHOT
接下来,在构建部分中添加另一个插件:
TestWebApp ** org.apache.maven.plugins maven-war-plugin make-a-war compile war ** maven-compiler-plugin 1.6 1.6
步骤2:在第二个项目(取决于第一个项目)中,将依赖jar(原始项目)放在pom中。
com.pancharatna TestWebApp 1.0-SNAPSHOT compile
第3步:为项目执行mvn clean install,然后为第二个项目执行mvn clean install
第4步:可选:我们可以创建父pom,而不是像步骤3中提到的那样按顺序和单独构建项目。 我们可以简单运行mvn clean install:
C:/Test/ ├───Project1 │ └───src/main/... │ └───pom.xml │ ├───Project2 │ └───src/main/... │ └───pom.xml │ ├───pom.xml 4.0.0 com.MyApp myproject pom 1.0-SNAPSHOT myproject http://maven.apache.org /Project1 /Project2