У меня довольно простой модуль Flex SWC, который компилируется с помощью плагина Maven Flexmojos.Этот модуль также использует flexmojos: генерировать цель на этапе создания источников для создания эквивалентов Actionscript3 моих Java-сервисов и классов доменов.Обычные источники находятся в src/main/flex
, а сгенерированные источники - в src/main/flex-generated
.Сгенерированные источники НЕ проверяются в Subversion.Как и многие другие пользователи flexmojos, я использую цель build-helper: add-source, чтобы добавить это второе дерево исходников в мою компиляцию.Уже несколько месяцев это работает хорошо, и выходные данные Maven обычно выглядят так:
[INFO] ------------------------------------------------------------------------
[INFO] Building myproj Core Client -- Flex Service
[INFO] task-segment: [deploy]
[INFO] ------------------------------------------------------------------------
[INFO] [flexmojos:generate {execution: create-actionscript-classes}]
[INFO] Flexmojos 3.7.1
[INFO] Apache License - Version 2.0 (NO WARRANTY) - See COPYRIGHT file
[INFO] flexmojos 3.7.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
[INFO] Calling the generator for each Java class.
[INFO] Generating: /home/bsmith/develop/myproj/myproj-core/tags/myproj-core-1.0.2/flex-service/src/main/flex-generated/com/myprojvision/core/domain/security/Group.as
.......
[INFO] [build-helper:add-source {execution: add-source}]
[INFO] Source directory: /home/bsmith/develop/myproj/myproj-core/tags/myproj-core-1.0.2/flex-service/src/main/flex-generated added.
[INFO] Flex compiler configurations:
.....
-compiler.source-path /home/bsmith/develop/myproj/myproj-core/tags/myproj-core-1.0.2/flex-service/src/main/flex /home/bsmith/develop/myproj/myproj-core/tags/myproj-core-1.0.2/flex-service/src/main/flex
Обратите внимание на то, насколько хорошо путь-путь компилятора flex представляет обе директории с исходным кодом.Эта установка успешно упакует, установит и развернет артефакт SWC.Однако теперь мы хотим использовать плагин релиза Maven для автоматизации процесса выпуска.Цель release:prepare
работает отлично.Однако выпуск release: execute target завершается неудачно, поскольку компилятору flex не передан сгенерированный исходный каталог по неизвестной причине:
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Building myproj Core Client -- Flex Service
[INFO] [INFO] task-segment: [deploy]
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] [flexmojos:generate {execution: create-actionscript-classes}]
[INFO] [INFO] Flexmojos 3.7.1
[INFO] [INFO] Apache License - Version 2.0 (NO WARRANTY) - See COPYRIGHT file
[INFO] [INFO] Calling the generator for each Java class.
[INFO] [INFO] Generating: /home/bsmith/develop/myproj/myproj-core/trunk/target/checkout/flex-service/src/main/flex-generated/com/myprojvision/core/domain/security/Group.as
...
[INFO] [INFO] [build-helper:add-source {execution: add-source}]
[INFO] [INFO] Source directory: /home/bsmith/develop/myproj/myproj-core/trunk/target/checkout/flex-service/src/main/flex-generated added.
...
[INFO] [INFO] Flex compiler configurations:
[INFO] -compiler.source-path /home/bsmith/develop/myproj/myproj-core/trunk/target/checkout/flex-service/src/main/flex
Обратите внимание, что файлы создаются в нужном месте, помощник по сборке правильно вызывается, но в гибком compiler.source-path отсутствует сгенерированный исходный каталог, и, таким образом, возникает ошибка Flex-not-found.Что поразительно для меня в этой проблеме, так это выпуск: prepare делает [очистить, проверить] в разветвленном жизненном цикле Maven, и он работает, но выпустить: выполнить не ... так что не похоже, что этоВ этом проблема.
Вот конфигурация подключаемого модуля build-helper:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.basedir}/src/main/flex-generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Обратите внимание, что если я откажусь от подключаемого модуля build-helper и использую конфигурацию flexPhos flexmojo, товсе отлично работает
<sourcePaths>
<path>${project.basedir}/src/main/flex</path>
<path>${project.basedir}/src/main/flex-generated</path>
</sourcePaths>
Однако sourcePaths устарела, и путь для тех, у кого несколько деревьев гибких исходных кодов, является помощником по сборке.