Maven 2 Maven将项目输出复制到其他项目资源中
有两个项目: 1) 输出jar文件的小程序项目 2) 应该承载jar文件的web应用程序项目 (1)完成构建后,应将小程序jar文件复制到(2)的webapp文件夹中。其目的是(2)将在Internet上托管小程序(1)Maven 2 Maven将项目输出复制到其他项目资源中,maven-2,applet,Maven 2,Applet,有两个项目: 1) 输出jar文件的小程序项目 2) 应该承载jar文件的web应用程序项目 (1)完成构建后,应将小程序jar文件复制到(2)的webapp文件夹中。其目的是(2)将在Internet上托管小程序(1) 许多示例解释了如何使用另一个项目作为库依赖项。其他示例演示如何使用ant插件复制文件。我不确定如何正确设置此设置,以便父项目上的“mvn安装”将在正确的时间进行复制。我将小程序声明为webapp的依赖项,在使用及其目标打包之前将其复制到webapp。整个解决方案可能如下所示:
许多示例解释了如何使用另一个项目作为库依赖项。其他示例演示如何使用ant插件复制文件。我不确定如何正确设置此设置,以便父项目上的“mvn安装”将在正确的时间进行复制。我将小程序声明为webapp的依赖项,在使用及其目标打包之前将其复制到webapp。整个解决方案可能如下所示:
<project>
...
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>my-applet</artifactId>
<version>${project.version}</version>
<scope>provided</scope> <!-- we don't want the applet in WEB-INF/classes -->
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copy</id>
<phase>prepare-package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>my-applet</artifactId>
<version>${project.version}</version>
<outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
<destFileName>the-applet.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
</project>
...
${project.groupId}
我的小程序
${project.version}
假如
...
org.apache.maven.plugins
maven依赖插件
2.1
复制
准备包装
复制
${project.groupId}
我的小程序
${project.version}
${project.build.directory}/${project.build.finalName}
applet.jar文件
...
将applet声明为依赖项是针对reactor构建顺序的(但我不能100%确定它是必需的)。是的,这100%有效。你跑得真快!而且,是的,reactor需要依赖关系(设置为provided)。@Thomas很高兴这很有帮助。感谢您的反馈(以及确认我的怀疑)。只有一个难以置信的小评论:提供的可以防止jar被复制到WEB-INF/lib,而不是WEB-INF/classes。但它确实防止了它被重复复制,这是重要的一点。一个有用的回复,谢谢发帖。使用。