有两个项目: 1)输出jar文件的applet项目 2)应该托管jar文件的web app项目。
在(1)完成构建之后,应将applet jar文件复制到(2)的webapp文件夹中。目的是(2)将在互联网上托管applet(1)。
许多示例解释了如何将另一个项目用作库依赖项。其他示例显示了如何使用ant插件来复制文件。我不确定如何正确设置它,以便父项目上的'mvn install'将在正确的时间进行复制。
答案 0 :(得分:6)
我会将applet声明为webapp的依赖项,在使用Dependency plugin及其copy
目标打包之前将其复制到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>
将applet声明为依赖是针对reactor构建顺序(但我不是100%确定它是必需的)。