Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 2 Maven将项目输出复制到其他项目资源中_Maven 2_Applet - Fatal编程技术网

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

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。整个解决方案可能如下所示:

有两个项目: 1) 输出jar文件的小程序项目 2) 应该承载jar文件的web应用程序项目

(1)完成构建后,应将小程序jar文件复制到(2)的webapp文件夹中。其目的是(2)将在Internet上托管小程序(1)


许多示例解释了如何使用另一个项目作为库依赖项。其他示例演示如何使用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。但它确实防止了它被重复复制,这是重要的一点。一个有用的回复,谢谢发帖。使用。