Flexmojo compiledLocal не удалось для итальянского или сербского языка

Я открываю для себя гибкий мир и Maven, добавив какую-то новую функцию в существующее приложение Flex, я, конечно, могу сделать что-то не так, но я не знаю что. Я использую flexmojo для управления компиляцией flex, и у меня возникает ошибка, когда я пытаюсь активировать другие языки (spanich, итальянский или сербский). Это работает как шарм для французского немецкого и английского языка

Вот мой pom.xml:

<configuration>
    <targetPlayer>10.0.0</targetPlayer>
    <incremental>true</incremental>
    <verboseStacktraces>false</verboseStacktraces>
    <optimize>true</optimize>
    <showWarnings>false</showWarnings>
    <debug>false</debug>
    <strict>true</strict>
    <compiledLocales>
        <locale>fr_FR</locale>
        <locale>es_ES</locale>
        <locale>de_DE</locale>
        <locale>it_IT</locale>
        <locale>en_US</locale>
        <locale>rs_SR</locale>
    </compiledLocales>
    <themes>
        <theme>${project.build.directory}/generated-resources/flex/themes/spark-theme.css</theme> 
        <theme>${project.build.directory}/generated-resources/flex/themes/halo-theme.swc</theme>
    </themes> 
    <!-- il faut indiquer ou est le fichier services-config.xml -->
    <services>${project.build.directory}/generated-resources/flex/services-config.xml</services>
    <!-- url context de l'application java qui sera appelee-->
    <contextRoot>idApp</contextRoot>
    <useNetwork>true</useNetwork>
    <allowSourcePathOverlap>true</allowSourcePathOverlap>
    <sourcePaths>
        <path>${basedir}/src/main/resources/locale/{locale}</path>
        <path>${basedir}/src/main/flex/</path>
        <path>${basedir}/src/test/</path>
    </sourcePaths>
    <sourceFile>idApp.mxml</sourceFile>
    <skipTests>true</skipTests>
</configuration>

В моем файле config.xml у меня такой же язык:

<?xml version="1.0" encoding="UTF-8"?>
<IDTRELConfig>
    <service endpoint="http://localhost:8080/idApp/messagebroker/amf" />
    <languages>
        <fr enable="true" />
        <en enable="true" />
        <es enable="true" />
        <de enable="true" />
        <it enable="true" />
        <sr enable="true" />
    </languages>
</IDTRELConfig>

Когда я выполняю в eclispe следующую команду:

clean install -Dmaven.test.skip -Dmaven.javadoc.skip

Я получил следующую ошибку:

    ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.200 s
[INFO] Finished at: 2015-03-11T18:24:45+01:00
[INFO] Final Memory: 15M/220M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:3.8:compile-swf (default-compile-swf) on project idApp: Failure to find com.adobe.flex.framework:datavisualization:rb.swc:rs_SR:4.1.0.16076 in http://download.java.net/maven/2 was cached in the local repository, resolution will not be reattempted until the update interval of java.net2 has elapsed or updates are forced
[ERROR] 
[ERROR] Try downloading the file manually from the project website.

1 ответ

Решение

Пожалуйста, используйте цепочку локалей. Проблема в том, что вы определяете язык, для которого у flex-framework нет локалей по умолчанию. Таким образом, компилятор жалуется, как только он хочет включить сербские локали для гибких ресурсов. Самым простым решением было бы установить английский как запасной вариант для любых ресурсов, не доступных на сербском языке.

<compiledLocales>
    <locale>fr_FR</locale>
    <locale>es_ES</locale>
    <locale>de_DE</locale>
    <locale>it_IT</locale>
    <locale>en_US</locale>
    <locale>rs_SR,en_US</locale>
</compiledLocales>

Таким образом, компилятор будет использовать сербский язык там, где вы его предоставили, и американский-английский, где вам не хватает сербского ресурса.

Подробности здесь: https://cwiki.apache.org/confluence/display/FLEX/Adding+I18N+support+to+your+application для деталей

Другие вопросы по тегам