1

我们有一台 linux 机器 (Red Hat) 来编译我们的 flex (3.0) 应用程序。这是一个 ant 任务(由 maven-antrun-plugin 调用)。

我们决定改变我们的构建机器(同样的 Red Hat)。
所以我在新机器上复制/粘贴 FLEX_HOME 目录(从旧机器上),安装 ant 然后在新机器上签出项目。

这是我打电话时的日志:ant -buildfile build-flex.xml

构建文件:build-flex.xml

版本:
[echo] 版本 ${maven.pom.version}
[copy] 复制 1 个文件到 /home/ad59aphr/build/pharerh-ihm/flex_resources

compile.release:
[mxmlc] 加载配置文件 /exec/products/flex_sdk/frameworks/flex-config.xml
[mxmlc] /home/ad59aphr/build/pharerh-ihm/flex_src/flexClient_381495.cache (没有这样的>文件或目录)

大多数情况下,它使用 100% cpu 的 java 挂起。有时它会显示编译中的一些警告,但不要进一步。

当我使用 ant -debug -buildfile build-flex.xml 时,它显示了执行的命令:

[mxmlc] FlexTask.execute:-compiler.keep-generated-actionscript=true -compiler.incremental=true +flexlib=/exec/products/flex_sdk/frameworks -compiler.services=/home/ad59aphr/build/pharerh-ihm/ WebContent/WEB-INF/flex/services-config.xml -metadata.description=PhareRH -metadata.title=PhareRH -compiler.accessible=true -compiler.optimize=true -compiler.strict=true -compiler.headless-server= true -load-config=/exec/products/flex_sdk/frameworks/flex-config.xml -compiler.source-path=/exec/products/flex_sdk/frameworks -compiler.source-path=/home/ad59aphr/build/pharerh -ihm/flex_resources -compiler.source-path=/home/ad59aphr/build/pharerh-ihm/flex_src -compiler.source-path=/home/ad59aphr/build/pharerh-ihm/flex_src_gen -compiler.context-root=/ -compiler.debug=false -compiler.include-libraries+=/home/ad59aphr/build/pharerh-ihm/flex_libs/Cairngorm.swc -compiler。include-libraries+=/home/ad59aphr/build/pharerh-ihm/flex_libs/Collat​​or.swc -compiler.include-libraries+=/home/ad59aphr/build/pharerh-ihm/flex_libs/automation.swc -compiler.include-libraries+= /home/ad59aphr/build/pharerh-ihm/flex_libs/automation_agent.swc -compiler.include-libraries+=/home/ad59aphr/build/pharerh-ihm/flex_libs/automation_dmv.swc -compiler.include-libraries+=/home/ad59aphr /build/pharerh-ihm/flex_libs/qtp.swc -- /home/ad59aphr/build/pharerh-ihm/flex_src/flexClient.mxml包含库+=/home/ad59aphr/build/pharerh-ihm/flex_libs/qtp.swc -- /home/ad59aphr/build/pharerh-ihm/flex_src/flexClient.mxml包含库+=/home/ad59aphr/build/pharerh-ihm/flex_libs/qtp.swc -- /home/ad59aphr/build/pharerh-ihm/flex_src/flexClient.mxml

关于调试输出,我看不出工作机器(旧机器)和这台新机器之间有任何区别。

我试图将旧的 .cache 文件复制到新机器(+更改数字),它给了我:

compile.release:
[mxmlc] 加载配置文件 /exec/products/flex_sdk/frameworks/flex-config.xml
[mxmlc] 编译目标与 /home/ad59aphr/build/pharerh-ihm/flex_src/flexClient_381495.cache 匹配失败. 缓存文件不会被重复使用。

我试图在 build-flex.xml 中将 -incremental 更改为 false,但结果相同:卡住了。

我尝试在 root 中编译以避免任何权限问题,结果相同。

我的 build-flex.xml :

<?xml version="1.0" encoding="UTF-8"?>
<!-- $HeadURL: http://svnserver.mdp/pharerh/branches/G1R3/developpement/pharerh-ihm/build-flex.xml $ -->
<!-- WARNING: Eclipse auto-generated file.
              Any modifications will be overwritten.
              To include a user specific buildfile here, simply create one in the same
              directory with the processing instruction <?eclipse.ant.import?>
              as the first entry and export the buildfile again. -->
<project basedir="." default="release" name="iah-admin-ui">
    <property environment="env" />


    <property name="WebApp.location" value="${env.TOMCAT_HOME}/webapps/pharerh-ihm" />

    <property name="flexClient.location" value="${basedir}" />
    <property name="FLEX_HOME" value="${env.FLEX_HOME}" />
    <property name="FDS_CONFIG_FILE" value="${env.FLEX_HOME}/frameworks/flex-config.xml" />
    <property name="webcontent_location" value="${flexClient.location}/WebContent" />
    <property name="FDS_SERVICES_CONFIG_FILE" value="${flexClient.location}/WebContent/WEB-INF/flex/services-config.xml" />

    <taskdef resource="flexTasks.tasks" classpath="${env.FLEX_HOME}/ant/lib/flexTasks.jar" />

    <target name="version">
        <echo message="Version ${maven.pom.version}" />
        <copy file="${flexClient.location}/flex_templates/version.properties" toDir="${flexClient.location}/flex_resources/" overwrite="true">
            <filterset>
                <filter token="generated" value="# ATTENTION : Ce fichier est le resultat d'une generation automatique. Ne pas editer." />
                <filter token="version" value="${maven.pom.version}" />
            </filterset>
        </copy>
    </target>

    <target name="compile.release" depends="version">
        <mxmlc file="${flexClient.location}/flex_src/flexClient.mxml" keep-generated-actionscript="true" incremental="true" services="${FDS_SERVICES_CONFIG_FILE}" >
            <accessible>true</accessible>
            <optimize>true</optimize>
            <strict>true</strict>
            <headless-server>true</headless-server>
            <load-config filename="${FDS_CONFIG_FILE}" />
            <source-path path-element="${env.FLEX_HOME}/frameworks" />
            <source-path path-element="${flexClient.location}/flex_resources" />
            <source-path path-element="${flexClient.location}/flex_src" />
            <source-path path-element="${flexClient.location}/flex_src_gen" />
            <compiler.include-libraries dir="${flexClient.location}/flex_libs" append="true" >
                <include name="*.swc" />
            </compiler.include-libraries>
            <compiler.context-root>/</compiler.context-root>
            <debug>false</debug>
            <metadata description="PhareRH" title="PhareRH" />
        </mxmlc>
    </target>
    
    <target name="flex.wrapper">
        <html-wrapper 
            title="Bienvenue sur l'application Phare-rh"
            height="100%"
            width="100%"
            bgcolor="#869ca7"
            output="${webcontent_location}"
            swf="flexClient"
            template="express-installation"
            history="false"
            application="flexClient"
            file="flexClient.html"
            />
            
        <!-- Ajout des balises pour la gestion du cache dans le fichier html. -->
        <replace file="${webcontent_location}/flexClient.html">
            <replacetoken><![CDATA[<head>]]></replacetoken>
            <replacevalue><![CDATA[<head>

<!-- Gestion du cache -->
<meta http-equiv="expires" content="0" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache, must-revalidate, max-age=0" />
<meta http-equiv="Cache" Content="no store" />
<meta http-equiv="last-modified" content="" />
]]></replacevalue>
        </replace>
    </target>

    <target name="compile.debug" depends="version">
        <mxmlc file="flex_src/flexClient.mxml" keep-generated-actionscript="false" services="${FDS_SERVICES_CONFIG_FILE}">
            <accessible>false</accessible>
            <optimize>false</optimize>
            <strict>true</strict>
            <load-config filename="${FDS_CONFIG_FILE}" />
            <source-path path-element="${env.FLEX_HOME}/frameworks" />
            <compiler.include-libraries dir="flex_libs" append="true">
                <include name="*.swc" />
            </compiler.include-libraries>
            <debug>true</debug>
            <metadata description="PhareRH" title="PhareRH">
            </metadata>
        </mxmlc>
    </target>

    <target name="release" depends="compile.release">
        <move file="flex_src/flexClient.swf" todir="${webcontent_location}" overwrite="true" />
    </target>

    <target name="packaging" depends="compile.release, flex.wrapper">
        <move file="flex_src/flexClient.swf" todir="${webcontent_location}" overwrite="true" />
    </target>

    <target name="release-debug" depends="compile.debug">
        <move file="${APP_ROOT}/flex_src/flexClient.swf" todir="release" overwrite="true" />
    </target>

    <target name="release-no-compile">
        <echo message="WebAppLocation : ${WebApp.location}"/>
        <copy file="bin-debug/flexClient.swf" todir="${WebApp.location}" overwrite="true" />
    </target>

    <target name="properties-encoding">
        <exec command="native2ascii -encoding ISO8859_1 flex_resources/election.properties election.properties.ISO8859_1">
        </exec>
        <move file="election.properties.ISO8859_1" tofile="flex_resources/election.properties" overwrite="true" />

        <exec command="native2ascii -encoding ISO8859_1 flex_resources/phareRH.properties phareRH.properties.ISO8859_1">
        </exec>
        <move file="phareRH.properties.ISO8859_1" tofile="flex_resources/phareRH.properties" overwrite="true" />

        <exec command="native2ascii -encoding ISO8859_1 flex_resources/erreurs.properties erreurs.properties.ISO8859_1">
        </exec>
        <move file="erreurs.properties.ISO8859_1" tofile="flex_resources/erreurs.properties" overwrite="true" />

        <exec command="native2ascii -encoding ISO8859_1 flex_resources/veillesociale.properties veillesociale.properties.ISO8859_1">
        </exec>
        <move file="veillesociale.properties.ISO8859_1" tofile="flex_resources/veillesociale.properties" overwrite="true" />

        <exec command="native2ascii -encoding ISO8859_1 flex_resources/rup.properties rup.properties.ISO8859_1">
        </exec>
        <move file="rup.properties.ISO8859_1" tofile="flex_resources/rup.properties" overwrite="true" />

        <exec command="native2ascii -encoding ISO8859_1 flex_resources/administration.properties administration.properties.ISO8859_1">
        </exec>
        <move file="administration.properties.ISO8859_1" tofile="flex_resources/administration.properties" overwrite="true" />
    </target>
</project>

我的 flex-config.xml

<?xml version="1.0"?>

<!--

    ADOBE SYSTEMS INCORPORATED
    Copyright 2005-2007 Adobe Systems Incorporated
    All Rights Reserved.

    NOTICE: Adobe permits you to use, modify, and distribute this file
    in accordance with the terms of the license agreement accompanying it.

-->

<flex-config>

   <compiler>

      <!-- Turn on generation of accessible SWFs. -->
      <accessible>false</accessible>

      <!-- Specifies the locales for internationalization. -->
      <locale>
          <locale-element>en_US</locale-element>
      </locale>

      <!-- List of path elements that form the roots of ActionScript class hierarchies. -->
      <!-- not set -->
      <!--
      <source-path>
         <path-element>string</path-element>
      </source-path>
      -->

     <!-- Allow the source-path to have path-elements which contain other path-elements -->
     <allow-source-path-overlap>false</allow-source-path-overlap>

      <!-- Run the AS3 compiler in a mode that detects legal but potentially incorrect -->
      <!-- code.                                                                       -->
      <show-actionscript-warnings>true</show-actionscript-warnings>

      <!-- Turn on generation of debuggable SWFs. False by default for mxmlc, -->
      <!-- but true by default for compc. -->
      <!--
      <debug>true</debug>
      -->

      <!-- List of SWC files or directories to compile against but to omit from -->
      <!-- linking.                                                             -->
      <external-library-path>
         <path-element>libs/player/playerglobal.swc</path-element>
      </external-library-path>

      <!-- Turn on writing of generated/*.as files to disk. These files are generated by -->
      <!-- the compiler during mxml translation and are helpful with understanding and   -->
      <!-- debugging Flex applications.                                                  -->
      <keep-generated-actionscript>false</keep-generated-actionscript>

      <!-- not set -->
      <!--
      <include-libraries>
         <library>string</library>
      </include-libraries>
      -->

      <!-- List of SWC files or directories that contain SWC files. -->
      <library-path>
         <path-element>libs</path-element>
         <path-element>libs/player</path-element>
         <path-element>locale/{locale}</path-element>
      </library-path>

      <namespaces>
      <!-- Specify a URI to associate with a manifest of components for use as MXML -->
      <!-- elements.                                                                -->
         <namespace>
            <uri>http://www.adobe.com/2006/mxml</uri>
            <manifest>mxml-manifest.xml</manifest>
         </namespace>
      </namespaces>

      <!-- Enable post-link SWF optimization. -->
      <optimize>true</optimize>

      <!-- Keep the following AS3 metadata in the bytecodes.                                             -->
      <!-- Warning: For the data binding feature in the Flex framework to work properly,                 -->
      <!--          the following metadata must be kept:                                                 -->
      <!--          1. Bindable                                                                          -->
      <!--          2. Managed                                                                           -->
      <!--          3. ChangeEvent                                                                       -->
      <!--          4. NonCommittingChangeEvent                                                          -->
      <!--          5. Transient                                                                         -->
      <!--
      <keep-as3-metadata>
          <name>Bindable</name>
          <name>Managed</name>
          <name>ChangeEvent</name>
          <name>NonCommittingChangeEvent</name>
          <name>Transient</name>
      </keep-as3-metadata>
      -->

      <!-- Turn on reporting of data binding warnings. For example: Warning: Data binding -->
      <!-- will not be able to detect assignments to "foo".                               -->
      <show-binding-warnings>true</show-binding-warnings>

      <!-- toggle whether warnings generated from unused type selectors are displayed -->
      <show-unused-type-selector-warnings>true</show-unused-type-selector-warnings>

      <!-- Run the AS3 compiler in strict error checking mode. -->
      <strict>true</strict>

      <!-- Use the ActionScript 3 class based object model for greater performance and better error reporting. -->
      <!-- In the class based object model most built-in functions are implemented as fixed methods of classes -->
      <!-- (-strict is recommended, but not required, for earlier errors) -->
      <as3>true</as3>

      <!-- Use the ECMAScript edition 3 prototype based object model to allow dynamic overriding of prototype -->
      <!-- properties. In the prototype based object model built-in functions are implemented as dynamic      -->
      <!-- properties of prototype objects (-strict is allowed, but may result in compiler errors for         -->
      <!-- references to dynamic properties) -->
      <es>false</es>

      <!-- List of CSS or SWC files to apply as a theme. -->
      <!-- not set -->
      <!--
      <theme>
         <filename>string</filename>
         <filename>string</filename>
      </theme>
      -->

      <!-- Turns on the display of stack traces for uncaught runtime errors. -->
      <verbose-stacktraces>false</verbose-stacktraces>

      <!-- Defines the AS3 file encoding. -->
      <!-- not set -->
      <!--
      <actionscript-file-encoding></actionscript-file-encoding>
      -->

      <fonts>

          <!-- Enables advanced anti-aliasing for embedded fonts, which provides greater clarity for small -->
          <!-- fonts. This setting can be overriden in CSS for specific fonts. -->
          <!-- NOTE: flash-type has been deprecated. Please use advanced-anti-aliasing <flash-type>true</flash-type> -->
          <advanced-anti-aliasing>true</advanced-anti-aliasing>

          <!-- The number of embedded font faces that are cached. -->
          <max-cached-fonts>20</max-cached-fonts>

          <!-- The number of character glyph outlines to cache for each font face. -->
          <max-glyphs-per-face>1000</max-glyphs-per-face>

          <!-- Defines ranges that can be used across multiple font-face declarations. -->
          <!-- See flash-unicode-table.xml for more examples. -->
          <!-- not set -->
          <!--
          <languages>
              <language-range>
                  <lang>englishRange</lang>
                  <range>U+0020-U+007E</range>
              </language-range>
          </languages>
          -->

          <!-- Compiler font manager classes, in policy resolution order-->
          <managers>
              <manager-class>flash.fonts.JREFontManager</manager-class>
              <manager-class>flash.fonts.AFEFontManager</manager-class>
              <manager-class>flash.fonts.BatikFontManager</manager-class>
          </managers>

          <!-- File containing cached system font licensing information produced via
               java -cp mxmlc.jar flex2.tools.FontSnapshot (fontpath)
               Will default to winFonts.ser on Windows XP and
               macFonts.ser on Mac OS X, so is commented out by default.

          <local-fonts-snapshot>localFonts.ser</local-fonts-snapshot>
          -->

      </fonts>

      <!-- Array.toString() format has changed. -->
      <warn-array-tostring-changes>false</warn-array-tostring-changes>

      <!-- Assignment within conditional. -->
      <warn-assignment-within-conditional>true</warn-assignment-within-conditional>

      <!-- Possibly invalid Array cast operation. -->
      <warn-bad-array-cast>true</warn-bad-array-cast>

      <!-- Non-Boolean value used where a Boolean value was expected. -->
      <warn-bad-bool-assignment>true</warn-bad-bool-assignment>

      <!-- Invalid Date cast operation. -->
      <warn-bad-date-cast>true</warn-bad-date-cast>

      <!-- Unknown method. -->
      <warn-bad-es3-type-method>true</warn-bad-es3-type-method>

      <!-- Unknown property. -->
      <warn-bad-es3-type-prop>true</warn-bad-es3-type-prop>

      <!-- Illogical comparison with NaN. Any comparison operation involving NaN will evaluate to false because NaN != NaN. -->
      <warn-bad-nan-comparison>true</warn-bad-nan-comparison>

      <!-- Impossible assignment to null. -->
      <warn-bad-null-assignment>true</warn-bad-null-assignment>

      <!-- Illogical comparison with null. -->
      <warn-bad-null-comparison>true</warn-bad-null-comparison>

      <!-- Illogical comparison with undefined. Only untyped variables (or variables of type *) can be undefined. -->
      <warn-bad-undefined-comparison>true</warn-bad-undefined-comparison>

      <!-- Boolean() with no arguments returns false in ActionScript 3.0. Boolean() returned undefined in ActionScript 2.0. -->
      <warn-boolean-constructor-with-no-args>false</warn-boolean-constructor-with-no-args>

      <!-- __resolve is no longer supported. -->
      <warn-changes-in-resolve>false</warn-changes-in-resolve>

      <!-- Class is sealed. It cannot have members added to it dynamically. -->
      <warn-class-is-sealed>true</warn-class-is-sealed>

      <!-- Constant not initialized. -->
      <warn-const-not-initialized>true</warn-const-not-initialized>

      <!-- Function used in new expression returns a value. Result will be what the -->
      <!-- function returns, rather than a new instance of that function.           -->
      <warn-constructor-returns-value>false</warn-constructor-returns-value>

      <!-- EventHandler was not added as a listener. -->
      <warn-deprecated-event-handler-error>false</warn-deprecated-event-handler-error>

      <!-- Unsupported ActionScript 2.0 function. -->
      <warn-deprecated-function-error>true</warn-deprecated-function-error>

      <!-- Unsupported ActionScript 2.0 property. -->
      <warn-deprecated-property-error>true</warn-deprecated-property-error>

      <!-- More than one argument by the same name. -->
      <warn-duplicate-argument-names>true</warn-duplicate-argument-names>

      <!-- Duplicate variable definition -->
      <warn-duplicate-variable-def>true</warn-duplicate-variable-def>

      <!-- ActionScript 3.0 iterates over an object's properties within a "for x in target" statement in random order. -->
      <warn-for-var-in-changes>false</warn-for-var-in-changes>

      <!-- Importing a package by the same name as the current class will hide that class identifier in this scope. -->
      <warn-import-hides-class>true</warn-import-hides-class>

      <!-- Use of the instanceof operator. -->
      <warn-instance-of-changes>true</warn-instance-of-changes>

      <!-- Internal error in compiler. -->
      <warn-internal-error>true</warn-internal-error>

      <!-- _level is no longer supported. For more information, see the flash.display package. -->
      <warn-level-not-supported>true</warn-level-not-supported>

      <!-- Missing namespace declaration (e.g. variable is not defined to be public, private, etc.). -->
      <warn-missing-namespace-decl>true</warn-missing-namespace-decl>

      <!-- Negative value will become a large positive value when assigned to a uint data type. -->
      <warn-negative-uint-literal>true</warn-negative-uint-literal>

      <!-- Missing constructor. -->
      <warn-no-constructor>false</warn-no-constructor>

      <!-- The super() statement was not called within the constructor. -->
      <warn-no-explicit-super-call-in-constructor>false</warn-no-explicit-super-call-in-constructor>

      <!-- Missing type declaration. -->
      <warn-no-type-decl>true</warn-no-type-decl>

      <!-- In ActionScript 3.0, white space is ignored and '' returns 0. Number() returns -->
      <!-- NaN in ActionScript 2.0 when the parameter is '' or contains white space.      -->
      <warn-number-from-string-changes>false</warn-number-from-string-changes>

      <!-- Change in scoping for the this keyword. Class methods extracted from an  -->
      <!-- instance of a class will always resolve this back to that instance. In   -->
      <!-- ActionScript 2.0 this is looked up dynamically based on where the method -->
      <!-- is invoked from.                                                         -->
      <warn-scoping-change-in-this>false</warn-scoping-change-in-this>

      <!-- Inefficient use of += on a TextField.-->
      <warn-slow-text-field-addition>true</warn-slow-text-field-addition>

      <!-- Possible missing parentheses. -->
      <warn-unlikely-function-value>true</warn-unlikely-function-value>

      <!-- Possible usage of the ActionScript 2.0 XML class. -->
      <warn-xml-class-has-changed>false</warn-xml-class-has-changed>

   </compiler>

   <!-- compute-digest: writes a digest to the catalog.xml of a library. Use this when the library will be used as a
                        cross-domain rsl.-->
   <!-- compute-digest usage:
   <compute-digest>boolean</compute-digest>
   -->

   <!-- A list of runtime shared library URLs to be loaded before applications start. -->
   <!-- not set -->
   <!--
   <runtime-shared-libraries>
      <url>string</url>
      <url>string</url>
   </runtime-shared-libraries>
   -->

   <!-- runtime-shared-library-path: specifies a SWC or directory to link against and an RSL URL to load with optional failover URLs -->
   <runtime-shared-library-path>
      <path-element>libs/framework.swc</path-element>
      <rsl-url>framework_3.0.0.477.swz</rsl-url>
      <policy-file-url></policy-file-url>
      <rsl-url>framework_3.0.0.477.swf</rsl-url>
      <policy-file-url></policy-file-url>
   </runtime-shared-library-path>
   <!-- static-link-runtime-shared-libraries: statically link the libraries specified by the -runtime-shared-libraries-path option.-->
   <static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>

   <!-- target-player: specifies the version of the player the application is targeting.
                       Features requiring a later version will not be compiled into the application.
                       The minimum value supported is "9.0.0".-->
   <!-- target-player usage:
   <target-player>version</target-player>
   -->

   <!-- Enables SWFs to access the network. -->
   <use-network>true</use-network>

   <!-- Metadata added to SWFs via the SWF Metadata tag. -->
   <metadata>
      <title>Adobe Flex 3 Application</title>
      <description>http://www.adobe.com/products/flex</description>
      <publisher>unknown</publisher>
      <creator>unknown</creator>
      <language>EN</language>
   </metadata>

   <!-- licenses: specifies a list of product and serial number pairs. -->
   <!-- not set -->
   
   <licenses>
      <license>
         <product>flexbuilder3</product>
         <serial-number>XXXXXXXXXXXXXXXXX</serial-number>
      </license>
   </licenses>
  

</flex-config>
4

1 回答 1

0

我认为“flexClient_381495.cache(没有这样的>文件或目录)”消息是无害的。这只是 ant 或 ant 任务的标准输出,对吧?我想我已经看过这样的消息一百万次了,但是我已经有一段时间没有使用 ant 了……

您提到它在打印该输出后挂起,但有时您还会看到编译器警告。我猜它每次都进入编译阶段。有时您在编译时会看到一些警告消息。

听起来您可能想为 JVM 指定更大的堆大小。在此处此处执行此操作的一些详细信息。

于 2013-08-21T17:38:55.673 回答