本文記錄一套基於 Eclipse、Maven 管理、Spring MVC 後端、Flex 前端的完整開發環境搭建過程,涵蓋 JDK/Maven/Eclipse/Flex 環境變量配置、settings.xml 優化、多模塊專案結構生成、核心 POM 文件詳解、FlashBuilder/Eclipse 專案導入與調試設置,適合維護老牌 Flex 專案或研究多技術棧整合的團隊。
JAVA_HOME=D:\GreenSoftware\Java\Java8X64\jdk1.8.0_91 PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
MAVEN_HOME=D:\GreenSoftware\apache-maven-3.0.5 PATH=%MAVEN_HOME%\bin
<settings>
<localRepository>D:/GreenSoftware/Java/repository</localRepository>
<profiles>
<profile>
<id>compiler</id>
<properties>
<JAVA_HOME>D:\GreenSoftware\Java\Java8X64\jdk1.8.0_91</JAVA_HOME>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>compiler</activeProfile>
</activeProfiles>
</settings>
-vm D:/GreenSoftware/Java/Java8X64/jdk1.8.0_91/jre/bin/server/jvm.dll -vmargs -Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m

flashplayer.exe 放入 C:\Windowsmvn install:install-file -Dfile=agslib-3.6-2013-12-13.swc -DgroupId=com.esri -DartifactId=agslib -Dversion=3.6-2013-12-13 -Dpackaging=swc mvn install:install-file -Dfile=agslib-2.5-2011-11-30.swc -DgroupId=com.esri -DartifactId=agslib -Dversion=2.5-2011-11-30 -Dpackaging=swc mvn install:install-file -Dfile=amCharts-4.0.swc -DgroupId=com.amcharts -DartifactId=amCharts -Dversion=4.0 -Dpackaging=swc mvn install:install-file -Dfile=GifPlayer-1.0.swc -DgroupId=org.gif -DartifactId=GifPlayer -Dversion=1.0 -Dpackaging=swc mvn install:install-file -Dfile=PlotAPI-4.0.swc -DgroupId=com.esrichina -DartifactId=PlotAPI -Dversion=4.0 -Dpackaging=swc mvn install:install-file -Dfile=as3-signals-0.8.swc -DgroupId=org.osflash -DartifactId=as3-signals -Dversion=0.8 -Dpackaging=swc
cd d:/Project/workspace/mete mvn archetype:generate \ -DarchetypeRepository=https://repository.sonatype.org/content/groups/flexgroup \ -DarchetypeGroupId=org.sonatype.flexmojos \ -DarchetypeArtifactId=flexmojos-archetypes-modular-webapp \ -DarchetypeVersion=4.0-beta-3 # 交互輸入 groupId: com.summit.mete artifactId: meteapp version: 1.0 package: pom
生成結構:
meteapp (pom) ├── MapLab (swc) -- Flex 庫模塊 ├── MeteMap (swf) -- Flex 主應用模塊 └── MeteWeb (war) -- Spring MVC 後端模塊
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.summit.mete</groupId>
<artifactId>meteapp</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<properties>
<flex.version>4.5.1.21328</flex.version>
<flexmojos.version>4.2-beta</flexmojos.version>
</properties>
<modules>
<module>MapLab</module>
<module>MeteMap</module>
<module>MeteWeb</module>
</modules>
<repositories>
<repository>
<id>flex-mojos-repository</id>
<url>https://repository.sonatype.org/content/groups/flexgroup</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>flex-mojos-plugin-repository</id>
<url>https://repository.sonatype.org/content/groups/flexgroup</url>
</pluginRepository>
</pluginRepositories>
</project>
swczh_CN、theme、優化編譯swfindex.mxmlwardevApp (開發調試)、depApp (部署打包)copy-flex-resources 目標將編譯產物 (SWF/SWC) 複製到 src/main/webapp/giscd d:/Project/workspace/mete/MeteMap mvn org.sonatype.flexmojos:flexmojos-maven-plugin:3.9:flashbuilder
在 FlashBuilder 中 Import → Existing Projects,勾選生成的 .project/.actionScriptProperties。
cd d:/Project/workspace/mete/MeteWeb mvn eclipse:eclipse -PdevApp
Eclipse 中 Import → Existing Projects into Workspace,選中 MeteWeb。
| 變量 | 含義 |
|---|---|
| ${project.name} | 專案名稱 |
| ${project.parent.groupId} | 父專案 groupId |
| ${project.build.sourceEncoding} | 構建編碼 |
| ${settings.localRepository} | 本地倉庫路徑 |
| ${env.JAVA_HOME} | 系統環境變量 JAVA_HOME |
| ${java.version} | JVM 版本 |
| ${user.home} | 用戶主目錄 |
| 插件 | 常用 Goal | 綁定 Phase |
|---|---|---|
| maven-compiler-plugin | compile, testCompile | compile, test-compile |
| maven-surefire-plugin | test | test |
| maven-war-plugin | war | package |
| flexmojos-maven-plugin | compile-swf, test-compile, copy-flex-resources | compile, test-compile, package |
flexmojos-maven-plugin 的編譯參數(locale、theme、RSL、module)與 copy-flex-resources 的輸出路徑映射。完整 POM 文件已在文中列出,可直接複製適配項目路徑使用。