maven-gwt-plugin 和打包到 JAR
maven-gwt-plugin and packaging to JAR
我正在重写从 Ant 到 Maven 的遗留 Spring 项目构建脚本。该项目有几个 GWT 模块,每个模块都编译为 JAR。目前的项目结构由几个Maven模块组成,大致是这样的:
mainProject
|- AnalyzerGWT <-- this module uses GWT
|- analyzer <-- this doesn't
|- someOtherModule
|- p4you-spring <-- this module has resources and builds WAR
每个使用 GWT 的模块在其 pom.xml 中都有以下代码(模块称为 AnalyzerGWT):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<gwtSdkFirstInClasspath>true</gwtSdkFirstInClasspath>
<compileSourcesArtifacts>
<artifact>com.pamm:portal-common</artifact>
<artifact>com.pamm:analyzer</artifact>
</compileSourcesArtifacts>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
编译成功,结果GWT资源保存到AnalyzerGWT/target/AnalyzerGWT-1.0/com.pamm.analyzer.gwt.Analyzer/,但是这个目录的内容没有包含到结果 JAR 文件。
有没有一种优雅的方法可以将这个目录的内容复制到JAR的根路径中?
该文件夹中的文件很可能是 GWT 编译器生成的 javascript,因此您最好将模块打包为 WAR 文件而不是
<packaging>war</packaging>
Maven 会为您完成剩下的工作。
干杯,
我设法通过添加解决了问题:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<resources>
<resource>
<directory>
${project.build.directory}/AnalyzerGWT-1.0/com.pamm.analyzer.gwt.Analyzer/
</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
到 pom.xml 中的 <plugins>
部分。
我正在重写从 Ant 到 Maven 的遗留 Spring 项目构建脚本。该项目有几个 GWT 模块,每个模块都编译为 JAR。目前的项目结构由几个Maven模块组成,大致是这样的:
mainProject
|- AnalyzerGWT <-- this module uses GWT
|- analyzer <-- this doesn't
|- someOtherModule
|- p4you-spring <-- this module has resources and builds WAR
每个使用 GWT 的模块在其 pom.xml 中都有以下代码(模块称为 AnalyzerGWT):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<gwtSdkFirstInClasspath>true</gwtSdkFirstInClasspath>
<compileSourcesArtifacts>
<artifact>com.pamm:portal-common</artifact>
<artifact>com.pamm:analyzer</artifact>
</compileSourcesArtifacts>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
编译成功,结果GWT资源保存到AnalyzerGWT/target/AnalyzerGWT-1.0/com.pamm.analyzer.gwt.Analyzer/,但是这个目录的内容没有包含到结果 JAR 文件。
有没有一种优雅的方法可以将这个目录的内容复制到JAR的根路径中?
该文件夹中的文件很可能是 GWT 编译器生成的 javascript,因此您最好将模块打包为 WAR 文件而不是
<packaging>war</packaging>
Maven 会为您完成剩下的工作。
干杯,
我设法通过添加解决了问题:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<resources>
<resource>
<directory>
${project.build.directory}/AnalyzerGWT-1.0/com.pamm.analyzer.gwt.Analyzer/
</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
到 pom.xml 中的 <plugins>
部分。