如何使用Flexmojos设置主题?

时间:2011-10-05 15:48:50

标签: flex flex4 flexmojos flex-mojos

使用flexmojos进行编译时,我收到警告:

[警告]在部分或任何scope =“theme”依赖项中没有显式定义主题。 Flexmojos现在正试图找出要包含的主题。 (为了避免此警告,您应该明确说明您的主题依赖性)

[警告]添加spark.css主题,因为spark.swc作为依赖项包含在内

我尝试过添加:

<dependency>
    <groupId>com.adobe.flex.framework</groupId>
    <artifactId>spark</artifactId>
    <type>swc</type>
    <scope>theme</scope>
    <version>${flex.sdk.version}</version>
</dependency>

但我得到一个错误:

com.adobe.flex.framework:spark:swc必须是[compile,runtime,system]之一,但是'theme'

我只想使用标准的Spark主题。

由于

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题(添加了主题,但它产生了丑陋的警告)。我通过以下方式明确引用主题的CSS文件来修复它:

  1. 将以下内容添加到flexmojos配置中:

    <themes>
        <theme>spark-theme-${flex.sdk.version}.css</theme>
    </themes>
    
  2. 将主题添加为依赖项:

    <dependency>
        <groupId>com.adobe.flex.framework</groupId>
        <artifactId>spark-theme</artifactId>
        <version>${flex.sdk.version}</version>
        <type>css</type>
    </dependency>
    
  3. 将依赖项拉入输出目录。有几种方法可以做到这一点,包括一个简单的蚂蚁副本。我选择使用maven依赖插件:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <id>copy-theme-file</id>
                <phase>process-resources</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                    <includeArtifactIds>spark-theme</includeArtifactIds>
                </configuration>
            </execution>
        </executions>
    </plugin>
    
  4. 按照这些步骤将spark-theme的CSS文件复制到输出目录(大多数情况下为/ target / classes),并在flexmojos配置中明确引用CSS文件。

    这完全摆脱了对我的所有主题警告。我希望这有助于某人。

答案 1 :(得分:0)

我正在使用Flex-Mojos 4.1-beta,主题为“just work”™我不能保证早期版本。

举一个例子,拉入spark主题(SDK的一部分):

   <dependency>
        <groupId>com.adobe.flex.framework</groupId>
        <artifactId>spark</artifactId>
        <version>${flex.version}</version>
        <scope>theme</scope>
        <type>swc</type>
    </dependency>

现在,拉一下我之前定义的主题:

    <dependency>
        <groupId>ie.hunt</groupId>
        <artifactId>theme-library</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>swc</type>
        <scope>theme</scope>
    </dependency>

应用'spark'主题,然后被我在我自己的主题swc中定义的规则覆盖。别无其他。

使用'plugin'的'themes'子节 - &gt;'configuration'会创建无用的Null指针异常,例如:

 <configuration>
 <themes>
  <theme>spark.css</theme>
 <themes>
 ...
 </configuration>

错误输出:

 [ERROR] Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:4.1-beta:compile-swc (default-compile-swc) on project theme-library: java.lang.NullPointerException -> [Help 1]

答案 2 :(得分:0)

或者,更简单with this answer(只是想在你的pom的 dependencyManagement 依赖标签中声明它