1

在开发 Google Chrome 扩展程序时,我希望能够为环境构建不同的版本。

我正在使用CRX Maven 插件来构建我的扩展。

默认情况下,我希望 src/main/chrome 下的文件成为我的开发文件,因为我使用 Chrome 的“加载解压扩展...”在本地进行测试。该扩展还进行远程调用,因此每个环境都有一个对应的远程服务器。我已将其外部化为 conf.js 文件。我正在考虑从 maven 构建中排除 src/main/chrome/conf.js 文件,并使用以下配置包括 /src/main/chrome 之外的另一个 conf.js:

...
<configuration>
...
    <packagingExcludes>js/conf.js</packagingExcludes>
...
</configuration>

我看不到临时构建目录,我可以在其中使用一些额外的脚本删除 conf.js。有什么建议么?

4

1 回答 1

0

CRX Maven 插件现在支持文件过滤。

您可以将环境特定设置的名称/值对放入名为 conf_XXX.properties 的 Java .properties 文件中,而不是为每个环境使用不同的 conf.js,其中 XXX 是您将用于标识目标环境的名称为构建。

该插件可以配置如下:

<plugin>
    <groupId>com.btmatthews.maven.plugins</groupId>
    <artifactId>crx-maven-plugin</artifactId>
    <version>1.2.0</version>
    <configuration>
        ...
        <filtering>true</filtering>
        <filters>
            <filter>etc/conf_${targetEnv}.properties</filter>
        </filters>
        ...
   </configuration>

您将使用 -D 选项在构建时设置目标环境。

mvn -DtargetEnv=XXX
于 2012-12-06T22:36:59.777 回答