Maven将项目输出复制到其他项目资源中

时间:2010-04-08 20:45:25

标签: maven-2 applet

有两个项目: 1)输出jar文件的applet项目 2)应该托管jar文件的web app项目。

在(1)完成构建之后,应将applet jar文件复制到(2)的webapp文件夹中。目的是(2)将在互联网上托管applet(1)。

许多示例解释了如何将另一个项目用作库依赖项。其他示例显示了如何使用ant插件来复制文件。我不确定如何正确设置它,以便父项目上的'mvn install'将在正确的时间进行复制。

1 个答案:

答案 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%确定它是必需的)