【问题标题】:How do I set the theme using Flexmojos?如何使用 Flexmojos 设置主题?
【发布时间】:2011-10-05 15:48:50
【问题描述】:

使用 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] 之一,但是是“主题”

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

谢谢

【问题讨论】:

  • [警告] 添加 spark.css 主题,因为 spark.swc 被包含为依赖项 - 据说,将使用该 spark 主题。不是用的吗? About scopes
  • 确实如此,而且确实如此。但是,我想摆脱所有不必要的构建警告,以便任何真正的警告更加明显

标签: apache-flex flex4 flexmojos flex-mojos


【解决方案1】:

我遇到了同样的问题(添加主题有效,但会产生难看的警告)。我通过以下方式明确引用主题的 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>
    

按照这些步骤将 spark-theme 的 CSS 文件复制到输出目录(大多数情况下是 /target/classes),并在 flexmojos 配置中明确引用 CSS 文件。

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

【讨论】:

    【解决方案2】:

    我正在使用 Flex-Mojos 4.1-beta,并且主题“正常工作”™ 我不能保证早期版本。

    举个例子,拉入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'->'configuration' 的 'themes' 小节会产生无用的空指针异常,例如:

     <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]
    

    【讨论】:

    • 不幸的是,该修复会产生更多构建警告。
    • 大约 8 个月前我放弃了使用 flex-mojo,它们对我的产品稳定性几乎没有增加,而且花费了我很多时间。我对开发 Flex 应用程序的建议是现在。 1)使用 Intellij 2)不要在 flex-mojos 上浪费时间 3)将二进制库检查到 git(或任何你使用的)
    【解决方案3】:

    或者,更简单的with this answer(只需考虑在你的 pom 的 dependencyManagementdependencies 标签中声明它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 2013-11-20
      相关资源
      最近更新 更多