您好我已经设置了一个flex项目,它基本上分为3个模块,一个flex,一个java和一个war项目。能够编译所有,但flexmojos:copy-flex-resources插件只复制" .swf"将文件放入webapp目录。还有其他文件,如html包装器,它们被跳过。有没有人解决它。谢谢!
我的SWF POM
swf申请
<properties>
<path_to_services_config_xml>${basedir}/src/main/resources/services-config.xml</path_to_services_config_xml>
</properties>
<build>
<sourceDirectory>src/main/flex</sourceDirectory>
<testSourceDirectory>src/test/flex</testSourceDirectory>
<directory>target</directory>
<plugins>
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<!-- <version>3.8</version> -->
<executions>
<execution>
<id>html-wrapper</id>
<goals>
<goal>wrapper</goal>
</goals>
<configuration>
<templateURI>folder:/html-template</templateURI>
<parameters>
<swf>${project.build.finalName}</swf>
<width>100%</width>
<height>100%</height>
<version_major>${flash.major}</version_major>
<version_minor>${flash.minor}</version_minor>
<version_revision>${flash.revision}</version_revision>
<bgcolor>#FFFFFF</bgcolor>
</parameters>
<htmlName>Main</htmlName>
<!-- <targetPlayer>${flash.major}.${flash.minor}.${flash.revision}</targetPlayer> -->
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>flex-compiler-oem</artifactId>
<version>4.5.1.21328</version>
</dependency>
</dependencies>
<extensions>true</extensions>
<configuration>
<debug>true</debug>
<!-- <output>target/bin/</output> <sourcePaths> <path>src/main</path>
</sourcePaths> Configuration to copy assets (Images) folder to target -->
<includeFileSets>
<fileset>
<directory>src/main/assets</directory>
<includes>
<include>*.*</include>
</includes>
</fileset>
</includeFileSets>
<!-- service-config.xml specification (path defined above) -->
<services>${path_to_services_config_xml}</services>
<!-- Context Root URL -->
<contextRoot>clv-web-0.3</contextRoot>
<localesCompiled>
<locale>en_US</locale>
<locale>fr_FR</locale>
</localesCompiled>
<localesSourcePath>${basedir}/src/main/locale/{locale}</localesSourcePath>
<!-- <localesSourcePath>${basedir}/src/main/locale/fr_FR</localesSourcePath> -->
<!-- <templateURI>${basedir}/html-template/</templateURI> <outputDir>target/flex-html</outputDir>
<htmlName>myindex.html</htmlName> <parameters> <swf>${build.finalName}</swf>
</parameters> -->
</configuration>
<!-- <executions> <execution> <goals> <goal>wrapper</goal> </goals> </execution>
</executions> -->
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>flex-framework</artifactId>
<version>4.5.1.21328</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.adobe.flexunit</groupId>
<artifactId>flexunit</artifactId>
<version>0.85</version>
<type>swc</type>
<scope>test</scope>
</dependency>
我的战争POM是
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>4.1-beta</version>
<extensions>true</extensions>
<executions>
<!-- <execution> <id>wrapper</id> <phase>generate-resources</phase>
<goals> <goal>wrapper</goal> </goals> <configuration> <wrapperArtifact> <groupId>com.cat.clv.swf</groupId>
<artifactId>clv-swf</artifactId> <version>0.3</version> </wrapperArtifact>
<htmlName>Main</htmlName> </configuration> </execution> -->
<execution>
<goals>
<goal>copy-flex-resources</goal>
</goals>
<configuration>
<webappDirectory>>${basedir}/src/main/webapp/demo</webappDirectory>
<stripVersion>true</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/webapp</directory>
</resource>
</webResources>
<debug>true</debug>
<!-- <warSourceExcludes>index.template.html</warSourceExcludes> <webResources>
<resource> <directory>target</directory> </resource> </webResources> -->
</configuration>
</plugin>
答案 0 :(得分:1)
我是正式接管flexmojos开发的人。
您遇到的问题可能与使用3.x(不记得版本)的flexmojos中的某些更改有关。我遇到了与您相同的问题。在寻找原因时我发现flexmojos在确定项目pom中的finalName时遇到了问题,因为在某些情况下maven会抛出错误。当我自己指定finalName时,我通过在copy-flex-resources配置中设置false来解决问题。最终这会有所帮助。
我必须在另一个项目中使用的另一个解决方案是在我的war项目中明确使用一个oder版本的copy-flex-resources mojo。 3.7.1似乎是没有这个问题的最后一个版本。
不幸的是,我还没有设法解决这个错误,但它仍然在我的雷达上。
克里斯
答案 1 :(得分:1)
我在flexmojos-maven-plugin版本3.8中遇到了一个非常类似的配置问题,我通过将warSourceDirectoryPath添加到swf项目中的包装器目标配置的outputDirectory来修复:
我定义了一个属性: warSourceDirectoryPath = ../ workbench-server / src / main / webapp / flex
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>3.8</version>
<executions>
<execution>
<id>flex-ui-wrapper</id>
<phase>generate-resources</phase>
<goals>
<goal>wrapper</goal>
</goals>
<configuration>
<templateURI>folder:/html-template</templateURI>
<templateOutputDirectory>${project.build.directory}/templates</templateOutputDirectory>
<outputDirectory>${warSourceDirectoryPath}</outputDirectory>
<parameters>
<swf>${project.build.finalName}</swf>
<title>Workbench</title>
<application>myapp</application>
</parameters>
<htmlName>Workbench</htmlName>
</configuration>
</execution>
</executions>
<dependencies>
...
</dependencies>
<extensions>true</extensions>
<configuration>
<debug>true</debug>
<sourceFile>${basedir}/src/main/flex/Workbench.mxml</sourceFile>
<contextRoot>/workbench-server</contextRoot>
<generateHtmlWrapper>true</generateHtmlWrapper>
<targetPlayer>11.1.0</targetPlayer>
<!-- <services>generated-resources</services> this is the default -->
</configuration>
</plugin>
希望有所帮助。