In contrast to Java Flex applications have more dependency scopes. Till Maven 3.1 the default Maven dependency resolution had a bug, that we started to rely on. This bug caused rsl scoped dependencies to be treated as "compile" dependencies. This made it possible to actually build applications as we intended them to be. In Maven 3.1.x this bug was fixed causing no transitive dependencies to be resolved if the scope is unknown. This unfortunately breaks Flex dependency resolution.

In FlexMojos I'm currently working on a manual mechanism to manually add flex scoped dependencies, acting as a workarund to the problems caused by the fixed maven bug.

Left column of this table is the scope of the dependency, the other columns define the how the transitive dependencies are resolved.

 compilerslincludedprovidedruntimetest
compilecompile(*)rslincluded-runtime-
rslrslrslrsl-runtime-
includedincludedincludedincluded-runtime-
providedprovidedprovidedprovided-provided-
runtimeruntimeruntimeruntime-runtime-
testtesttesttest-test-

Bold scopes are ones that are not defined in default Maven ... blue ones are ones I'm quite sure about, orange ones are open to discussion.

  • No labels