Чтобы добавлять сообщения и комментарии, .

@develar:
develar

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

@develar:
develar

youtrack.jetbrains.net

@nirthfurzahad:
nirthfurzahad

А что люди используют вместо flexmojos:flexbuilder в новых версиях плагина?

@Jan-Itor:
Jan-Itor

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

@yzh44yzh:
yzh44yzh

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

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

@yzh44yzh:
yzh44yzh

продолжение #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

@develar:
develar

@develar, а когда будет сделана генерация flex-config-report для тестов?

@develar:
develar

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

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

@develar:
develar

Вышла новая версия конфигуратора idea-flexmojos-maven-plugin — youtrack.jetbrains.net , serialNumber is fixed.

@develar:
develar

Йо. Пусть рабочий день почему-то стал с 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

@develar:
develar

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

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

@develar:
develar

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

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

@develar:
develar

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

@yzh44yzh:
yzh44yzh

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 остается открытым

@yzh44yzh:
yzh44yzh

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

Допустим у вас есть некий модуль на чистом 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>
и все собирается нормально

@yzh44yzh:
yzh44yzh

Даю рецеп решения проблем.

Неправильный: гуглить, искать доки.
Правильный: втыкать в сорцы

@yzh44yzh:
yzh44yzh

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

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

@yzh44yzh:
yzh44yzh

yura ~/p/myproj/flex $ cat configure.sh
#!/bin/bash
export M2_HOME=/usr/local/apache-maven-3.0.1/

/usr/local/apache-maven-3.0.1/bin/mvn -Pnexus -o org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-de3:configurator

@develar:
develar

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 и в тракторе для англоязычных) очень легко.

@yzh44yzh:
yzh44yzh

Перевел проект с форка @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 можно хоронить, я думаю, ибо у него не осталось ни поддержки, ни пользователей )

@develar:
develar

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

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

@develar:
develar

А вы уже проголосовали за youtrack.jetbrains.net , из-за которого я не могу автоматизировать автогенерация flex-config при импорте maven-проектов с flexmojos?

@develar:
develar

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

@yzh44yzh:
yzh44yzh

статья про flexmojos 4 yzh44yzh.com

@develar:
develar

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

@develar:
develar

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

@develar:
develar

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

@yzh44yzh:
yzh44yzh

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

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

@develar:
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 может не подходить вам (мне лениво переопубликовать ее, а для меня все работает).

@develar:
develar

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

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

@yzh44yzh:
yzh44yzh

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

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

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

@yzh44yzh:
yzh44yzh

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

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

@yzh44yzh:
yzh44yzh

Так, все 4.0-beta-3 идет нафиг. Пойду искать, что там у @develar сейчас актуально.

@yzh44yzh:
yzh44yzh

Еще пару приколов, и пошлю нафиг эту стандартную ветку. Жопа какая-то, спотыкаешься на каждом шагу. Вот пока запускал билд с указанием 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.

@yzh44yzh:
yzh44yzh

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

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

@yzh44yzh:
yzh44yzh

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

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

@yzh44yzh:
yzh44yzh

Так, задача положить 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

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

@yzh44yzh:
yzh44yzh

Ага, вот она, сокровищница сокровенных знаний
repository.sonatype.org

@develar:
develar

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

@yzh44yzh:
yzh44yzh

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

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

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