to post messages and comments.

Чертовы религиозные фанатики. Как ресурсы добавить, так трахайтесь с build-helper maven plugin, а как source compiler roots as generated добавить, так "Никак. Это должно делаться автоматически. В мавене есть соглашение по поводу генерации исходников. Считается, что все дочение директории generated-sources являются source-path."

Если кому либо удалось запустить unit тесты на hudson и главное указать flexmojos на то, где лежит плеер (в пути есть, но всё равно не находит), буду очень признателен за помощь.

Есть еще вариант собрать AS3 либу в swc файл без всякого mvn, используя mxmlc напрямую. А потом сделать mvn install:install-file

Так, может, и лучше.

продолжение #1412544

Типа положить pom1.xml и pom2.xml у которых родителями будут разные super pom, а для сборки положить shell-скрипт, который будет делать типа такого:
cp pom1.xml pom.xml
M2_HOME=/usr/local/apache-maven-2.2.1/
$M2_HOME/bin/mvn install

cp pom2.xml pom.xml
M2_HOME=/usr/local/apache-maven-3.0.3/
$M2_HOME/bin/mvn install

(да, их еще и разными версиями maven нужно собирать) :D

Вас удивляло, почему flexmojos 4 копирует теперь все типа манифестов и прочего из configs в , а вот fonts.ser нет?

Этому, раз уже Марвин не работает в Adobe, то есть он программист, есть оправдание — configs.zip это по сути optional depends, то есть в pure as проекте у вас может не быть от него зависимости (вы просто определили зависимость от playerglobal), поэтому *.ser файлы поставляются с самим flexmojos, как class resource. А копировать в local repo — а куда? Разве только брать на себя ответственность и копировать типа в compiler (раз уж он так нацарапан, что не может жить никак без этих файлов).

Йо. Пусть рабочий день почему-то стал с 8 до 3, зато плагин получился.

Идея с расширением ( brettporter.wordpress.com ), эта новая фича 3 мавена, потерпела крах из-за отсутствия документации и плачевного результата экспериментов (переопределить нужный мне компонент не удалось).
Идея простого выноса заклинания конфигуратора из flexmojos в отдельный плагин (с наложенными патчами) закончилась ничем в силу hwellmann.blogspot.com , и даже пропатчив maven-inherit-plugin согласно мысли maven-users.828.n2.nabble.com и не получилось видеть все параметры конфигурации (к примеру, compilerWarnings пропадал).

Ладно. Законные пути были исчерпаны и поэтому был релизован плагин, который сам на лету setup flexmojos maven plugin, но не исполняет его, а просто пытает на предмет нужной ему информации.

В следующем EAP IntelliJ IDEA уже не будет пытаться генерировать flex-config сама для flexmojos 4 — без поддержки 3 мавена это сделать никак нельзя автоматически, поэтому ручками в консоли.

Ничего ни в каких POM править не нужно, ничего добавлять как раньше не надо, патчить родной конфигуратор для правильной работы в проекте с локалями определенными в библиотеках тоже.

Единственное что — вам надо прописать адрес репозитория repository.flyti.org <repository.flyti.org> (если он еще не прописан ;)).

Просто выполните mvn com.intellij.flex.maven:idea-flexmojos-maven-plugin:1.1:generate -o в консоли и все. Подробнее — youtrack.jetbrains.net

К youtrack.jetbrains.net юзеры таки добавили нам родное youtrack.jetbrains.net :) Я уже все написал и вот-вот жду поддержки 3 мавена чтобы закоммитить.

Самое грустное и смешное — чтобы зафикисить это стороны IDEA — нужна пара строчек, а вот со стороны мавена, то есть запуска с консоли — писать, ага, расширение (эта фича 3 мавена) чуть ли не (из-за разницы в compc/mxmlc).

Иногда много говоришь, а поправить то так просто. В Idea была довольно-таки неприятная проблема с инициализацией реактора для мультимодульных проектов при первом запуске в случае запуска не на корневом проекте мультимодульного проекта, а на каком-нибудь подпроекте. То есть воспроизвести багу youtrack.jetbrains.net очень просто — достаточно заново открыть Idea, выделить явно некий подпроект и выполнить для него force reimport.

Ну а в случае autoimport поправить POM подпроекта (при условии, что все транзитивные зависимости как проекты общего мультимодульного до этого не были изменены). То бишь проблема касается как конфигуратора flexmojos 3, так и 4.

Как, ну как можно было в здравом уме наследовать ConfigurationMojo от CompcMojo и надеяться на корректную работу конфигуратора для приложения?

btw, эта штука
<dependency>
<artifactId>error</artifactId>
<groupId>com.flashdevs.fdm</groupId>
<version>4.0.1</version>
<type>swc</type>
<exclusions>
<exclusion>
<artifactId>flex-framework</artifactId>
<groupId>com.adobe.flex.framework</groupId>
</exclusion>
</exclusions>
</dependency>
помогает только частично. Мавеном-то оно билдится, а вот билд из IDEA не работает, настойчиво требует spark.css

То бишь, вопрос о подключении pure as3 swc артефактов равно в flex3.5 и flex4 остается открытым

Проблема такая вылазила раньше, но я, вроде бы, не писал, как ее решать.

Допустим у вас есть некий модуль на чистом AS3, без зависмостей от флекса. Но flexmojos устроен так, что при сборке этого модуля зависимость в swc все равно пропишется. Допустим, от 4-го SDK

И вот вы хотите использовать этот модуль в проекте с 3-м SDK, и проект не собирается.

Тогда нужно, подключая зависимость от данного модуля, указать exclusions, вот так:
<dependency>
<artifactId>error</artifactId>
<groupId>com.flashdevs.fdm</groupId>
<version>4.0.1</version>
<type>swc</type>
<exclusions>
<exclusion>
<artifactId>flex-framework</artifactId>
<groupId>com.adobe.flex.framework</groupId>
</exclusion>
</exclusions>
</dependency>
и все собирается нормально

стандартный flexmojos упрямо подключает halo.swc к проекту. Если генерить flex-config конфигуратором org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-de3:configurator, то там никаког halo не будет. И правильно, нафиг нужен.

Но вот как бы объяснить стандартному flexmojos, что halo нафиг нужен?

IntelliJ IDEA не поддерживает 3 мавен. Не поддерживает. Поэтому нереально сделать генерацию конфигурацию на лету juick.com Потому что флексеров мало и производитель данной IDE пока что забил на нас — полноценная поддержка 3 версии нужна только для нас, флексеров. Поэтому вот так вот.

Ага, вы тогда вправе задать как пользователь вопрос: "Почему тогда, черт вас всех возьми, вы показываете баллон с типа "IntelliJ IDEA failed to generate Flex compiler configuration file and other auxiliary files""? Почему нельзя как то более user friendly обработать ситуацию?

Отвечу честно — лично я надеялся, что на проблему отсутствия поддержки maven 3 в IDEA не забьют и сделают к релизу версии 10. Поэтому тратить свое время на реализацию порнографичной тупой заплатки не стал. Но на поддержку забили. Ну и шут с этим — в детсаде вы тут все что ли? Мы с Марвином проблему на стороне flexmojos решили, если у вас есть хоть чуть-чуть мозга, накопать информацию (мои комментарии к статье yzh44yzh.com и в тракторе для англоязычных) очень легко.

Перевел проект с форка @develar на стандартный flexmojos. Стоило некоторых усилий, но в итоге все получилось. Пришлось этим занятся, когда оказалось, что с форком проект не собирается под виндой — надоевшие проблемы с путями к ассетам.

Есть пару существенных моментов:
— отказался от структуры src/main/flex src/main/resources в пользу просто src, в котором и код, и ассеты. Ибо стандартный flexmojos не умеет подключать ассеты, если они не в одном каталоге с кодом
— с swc модуле сами по себе все классы не подключатся (а форке подключались все) Нужно явно указать, что подключать
<includeClasses>
<scan>
<includes>
<include>common.*</include>
<include>common.event.*</include>
<include>common.gui.*</include>
<include>common.view.*</include>
</includes>
</scan>
</includeClasses>
— С css тоже есть заморочки, их тож нужно явно задавать в поме
<includeStylesheets>
<stylesheet>
<name>main.css</name>
<path>${basedir}/src/main.css</path>
</stylesheet>
<stylesheet>
<name>fonts.css</name>
<path>${basedir}/src/fonts.css</path>
</stylesheet>
</includeStylesheets>
ну и я не могу положить css в src/css, как мне хотелось, ибо flexmojos тогда тупит. Пришлось ложить прямо в src

Как нибудь отпишусь в блоге подробно, когда будет не лень.

Ну а форк @develar можно хоронить, я думаю, ибо у него не осталось ни поддержки, ни пользователей )

*idea *rafpug Я идиот. Второй раз встречаю представителей расы казуальных flash-программистов, и каждый раз забываю использовать их как кроликов, чтобы они мне помогли конкретно понять, почему их тошнит от IDEA (вопрос о том, что она не автоматически добавляет библиотеки понятен, но что именно в интерфейсе отталкивает). Лишь смутное положительное ощущение, что они правы.

И Анна Сенина подняла интересный вопрос об отсутствии в России института консультантов — товарищей, которые помогли бы настроить тот же процесс мавенизации/CI/. Да. Товарищи — как бы у вас есть возможность получить консультацию от автора форка flexmojos и даже внесение изменений в него, если нужно :) И если в IDEA есть некий exception — не надо забивать на нее, а просто пришлите в трактор issue ( youtrack.jetbrains.net/ ) ;)

Если эти таски будут сделаны youtrack.jetbrains.net youtrack.jetbrains.net , то это будет весьма знаковым шагом по приближения IDEA к простым смертным, которым не хочется вручную добавлять какие-то там библиотеки (тем, кто пользуется мавенов, впрочем, плевать — у них плюшки эти из коробки).

Если для вашего чистого as-проекта вы указываете зависимость от playerglobal — то если вам не нужно, чтобы клиенты библиотеки получали это как транзитивную зависимость — установить scope = provided. Что будет, если клиент получит и playerglobal, и airglobal? Оно скомпилируется — на уровне flexmojos все отфильтруется, но Idea не содержит никаких хаков для фильтрации, в силу чего вы получите массу проблем, начиная от неравенства класса String классу String и просто unresolved class для air related.

В 3 версии моего форка была возможность указать defaultScope. В 4 надо либо трахаться с всеми транзитивными зависимостями (да, да, чуда нет — ядро мавена и 3 версии не поддерживает flex scopes), если мы хотим установить external scope, или же таки восстановить этот параметр.

Крамольная мысль отказаться от мавена на моем текущем проекте (якобы простом) окончательно отметена. Так как мы имеем порнографию с swf/swc и ничего вменяемого с этим сделать нельзя, это добавляем огромную кучу проблем, решать которые и призван flexmojos. И от этого грустно. Что из-за бреда введения разделения на swf/swc + вынос кучи параметров на уровень компилятора, вместо конфигурирования посредством тех же концепций, мы должны иметь то, что имеем.

Бобро победило зло. Но есть нюансы )

Если хотите flexmojos4 и maven3, у вас не будет нормальной интеграции с IDEA. Если хотите нормальную интеграцию с IDEA, нужно юзать форк @develar 4.0-de3. Чтобы его юзать, нужно уметь расшифровывать загадочные послания @develar в жуйк или общаться с ним лично. Или подождать, пока я переведу эти послания на человекопонятный язык и напишу у себя в блоге.

flexmojos 4.0-de3 super pom 24 flex sdk 4.1.0.16076-de (not default) (or patched from super pom (default) 4.5.0.18365) Если хотите использовать — ставьте версию SDK

<properties>
<fdk.version>4.1.0.16076-de</fdk.version>
<flex.sdk.version>4.1.0.16076-de</flex.sdk.version>
</properties>

или просите опубликовать нужную вам — SDK по умолчанию в super pom может не подходить вам (мне лениво переопубликовать ее, а для меня все работает).

Не знаю, чем руководствовался Марвин, но в 4 версии flexmojos theme подключаются через scope theme, а не сclassifier. Это бред в силу 3 причин:
1) алогично. то, что артефакт это тема, должно определяться по типу или классификатору, но никак не по области видимости. Конечно, кто-то козел в свете видения определенных товарищей — но только по духу, но никак не по сущности. А у нас тут именно сущность.
2) текущий sdk bundle publisher не готов к этому.
3) как, черт возьми, тогда собирать самому тему? В 3 версии приняли мой патч, добавляющий классификатор, но scope то никак не укажешь.

Поэтому идет лесом официальное изменение, в моем форке и в SDK, публикуемых мной, все будет как раньше.

По сути выходит, что переходит на maven 3 еще рано. Поддержка стандартного flexmojos и maven 3 в IDEA еще недопилена, а форк @develar выдает загадочные ошибки и не собирает мои swc. Пробовал 3.8-de3 и 4.0-de1.

Есть еще какой-то flexmojos:configurator, который, по идее, должен генерировать более правильные флекс-конфиги, чем это делает стандартный flexmojos. Но документации, ясное дело, никакой нет. И как его завести я своим слабым умом не могу догадаться.

То есть, по сути, я поставлен перед фактом: либо возвращаться на maven2 и flexmojos3, либо откзаться от запуска приложения для отладки через myproject

форк @develar радует обилием документации )
flyti.org

Ладно, некогда возиться со всякими мавенами и форками, надо работу работать. Оставлю проект на стандартном flexmojos.

Еще пару приколов, и пошлю нафиг эту стандартную ветку. Жопа какая-то, спотыкаешься на каждом шагу. Вот пока запускал билд с указанием MainClass в Run/Debug Configuration, все было ок. Как только поставил опцию запускать через урл project как оно перестало билдится. Говорит
[main (Flex)] a target file must be specified

То бишь, компилятор не знает, какой тут главный класс. И точно, гляжу в target/module-...-configs.xml, там главный класс не упоминается. Раньше была настройка <sourceFile>MyApp.mxml</sourceFile>, теперь она не работает. Втыкаю сюда: repository.sonatype.org и не вижу, каким образом можно задать главный класс.

В итоге не могу придумать, как бы запустить билд. Еще пять минут подумаю, и пошлю все нафиг и переключусь на форк @develar. Стандартная ветка не выглядит пригодной к юзанию, по крайней мере в плане интеграции с IDEA.

Сделал тупой некроссплатформенный хак
cd project/www/swf
ln -s ../../moduleA/target/moduleA-1.0-SNAPSHOT.swf myapp.swf
Работает. Ну и ладно.

А вообще желание юзать стандартный flexmojos все меньше и меньше.

хотя не, нафиг! какой вызов анта? Оно ж будет работать, только когда я мавеном компилирую. А билд из IDEA нифига не будет ложить swf куда надо.

Черт, вот беда-то :(

Так, задача положить swf на веб-сервер усложняется. Раньше было так:
<configuration>
<output>/var/www/html/project/myapp.swf</output>
</configuration>
Теперь это не работает.

Попробовал так:
<configuration>
<webappDirectory>/var/www/html/project</webappDirectory>
<finalName>myapp</finalName>
</configuration>
Работает, но не так, как надо. Создает папки /var/www/html/project внутри target, а за пределы target не выходит.
FAIL

Придется пихать вызов анта в пом :(

C flexmojos:configurator я перестал собирать проект мавеном, только сборка flex-config и потом make в IDEA. Для всех данная функциональность будет неявной и незаметной в IDEA 10.1, пока что mvn org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-de1:configurator c моим форком/с моим super pom.

Вот ведь ирония — форк @develar, конечно, лучше. Но вот писать про него в блоге нет смысла — народ если и интересуется flexmojos, то только стандартным. И если я хочу писать что-то большое и серьезное про flexmojos (ну там, хорошую серию статей), то я должен писать про стандартный. А для этого я должен сам его юзать.

Такая вот ситуация.

Про форк тоже можно писать, но меньше, и в сравнении. И тогда мне нужно знать и юзать и то, и другое.