首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Eclipse + Maven + Spring MVC + Flex 全棧開發環境搭建完整指南

     編輯:Java 綜合教學

從零構建企業級 Java/Flex 混合專案:環境變量、Maven 多模塊、POM 精細配置、IDE 整合

本文記錄一套基於 Eclipse、Maven 管理、Spring MVC 後端、Flex 前端的完整開發環境搭建過程,涵蓋 JDK/Maven/Eclipse/Flex 環境變量配置、settings.xml 優化、多模塊專案結構生成、核心 POM 文件詳解、FlashBuilder/Eclipse 專案導入與調試設置,適合維護老牌 Flex 專案或研究多技術棧整合的團隊。

一、基礎環境變量配置

1. JDK 1.8

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

2. Maven 3.0.5

MAVEN_HOME=D:\GreenSoftware\apache-maven-3.0.5
PATH=%MAVEN_HOME%\bin

3. Maven settings.xml 關鍵優化

<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>

4. Eclipse.ini 指定 JVM

-vm
D:/GreenSoftware/Java/Java8X64/jdk1.8.0_91/jre/bin/server/jvm.dll
-vmargs
-Xms256m
-Xmx1024m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=512m

5. Eclipse 內部配置

  • Window → Preferences → Java → Installed JREs → Add Standard VM → 指向 JDK 1.8
  • Maven → Installations → Add External Maven → 指向 3.0.5 目錄
  • Maven → User Settings → Global/User 均指向修改後的 settings.xml

Eclipse Maven 配置截圖

6. Flex 環境

  • 將 flashplayer.exe 放入 C:\Windows
  • 第三方 SWC 手動安裝到本地倉庫(見下文)

二、第三方 SWC 安裝到本地 Maven 倉庫

mvn 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 後端模塊

四、核心 POM 文件詳解

1. 父 POM (meteapp/pom.xml)

<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>

2. MapLab/pom.xml (SWC 庫)

  • packaging: swc
  • flexmojos-maven-plugin 配置:locales zh_CN、theme、優化編譯
  • 依賴:Flex Framework (framework, spark, rpc, charts 等,scope=caching)、第三方 SWC

3. MeteMap/pom.xml (SWF 應用)

  • packaging: swf
  • sourceFile: index.mxml
  • modules 節點定義動態加載模塊(HeadWidget, MainContainerWidget 等)
  • 依賴 MapLab SWC

4. MeteWeb/pom.xml (WAR 後端) —— 關鍵配置

  • packaging: war
  • profiles: devApp (開發調試)、depApp (部署打包)
  • flexmojos-maven-plugin: copy-flex-resources 目標將編譯產物 (SWF/SWC) 複製到 src/main/webapp/gis
  • maven-resources-plugin: 複製 Flex 源碼資源(非 .mxml/.as/.css) 到 webapp
  • tomcat7-maven-plugin: 內嵌 Tomcat 運行調試
  • 依賴:Spring 4.2.6、Spring Security 4.1、Jackson、MySQL、Log4j/SLF4J、JTS 拓撲庫

五、IDE 專案生成與導入

1. 生成 FlashBuilder 專案 (Flex 模塊)

cd d:/Project/workspace/mete/MeteMap
mvn org.sonatype.flexmojos:flexmojos-maven-plugin:3.9:flashbuilder

在 FlashBuilder 中 Import → Existing Projects,勾選生成的 .project/.actionScriptProperties。

2. 生成 Eclipse 專案 (後端模塊)

cd d:/Project/workspace/mete/MeteWeb
mvn eclipse:eclipse -PdevApp

Eclipse 中 Import → Existing Projects into Workspace,選中 MeteWeb。

3. Eclipse 調試設置

  • Run Configurations → Maven Build → Base directory: ${workspace_loc:/MeteWeb}, Goals: tomcat7:run -PdevApp
  • 或使用 m2e 插件右鍵 Run As → Maven Build

六、Maven 內置變量速查表

變量含義
${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-plugincompile, testCompilecompile, test-compile
maven-surefire-plugintesttest
maven-war-pluginwarpackage
flexmojos-maven-plugincompile-swf, test-compile, copy-flex-resourcescompile, test-compile, package

八、總結與遺留技術棧建議

  1. Flex 技術棧已停止更新(Adobe 2020 年停止支持),新項目建議遷移至 HTML5/React/Vue + Spring Boot。
  2. 維舊專案時,鎖定 Flex SDK 版本、flexmojos 版本、Maven 版本,避免環境漂移導致編譯失敗。
  3. 多模塊設計清晰分離:MapLab (共享組件) → MeteMap (前端應用) → MeteWeb (後端服務 + 靜態資源宿主)。
  4. 核心難點在於 flexmojos-maven-plugin 的編譯參數(locale、theme、RSL、module)與 copy-flex-resources 的輸出路徑映射。

完整 POM 文件已在文中列出,可直接複製適配項目路徑使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved