android-maven-plugin:将proguard绑定(bind)到后期

标签 android maven android-build android-maven-plugin

在我的 Maven 构建中,我想执行 proguard目标 after the tests ,以便更快地得到测试结果。因此,我尝试将其绑定(bind)到 prepare-package 阶段。但是,我的配置波纹管没有任何效果。 proguard 目标仍然在 process-classes 阶段执行(default-proguard)。我错过了什么?

<plugin>
    <groupId>com.simpligility.maven.plugins</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>4.1.0</version>
    <executions>
        <execution>
            <id>progurad-after-test</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>proguard</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!-- ... -->
        <proguard>
            <skip>false</skip>
        </proguard>
    </configuration>
</plugin>

最佳答案

旧答案:

您不能更改混淆器运行的阶段。但通常您可以隔离到一个配置文件中,以便仅在需要时运行,而不是在每次构建时运行。典型的用例是您仅为发布运行的发布配置文件。您还可以将其作为 QA 配置文件的一部分,并将其用于需要在开发过程中超出正常使用范围进行验证的开发构建。

思考后更新:

您可以通过配置两个执行来将 proguard mojo 执行更改为不同的阶段。一个用于 process-sources 阶段,最初在 Android Maven 插件中配置为被跳过。然后为所需阶段配置第二次执行,并将 skip 设置为 false。

<plugin>
    <groupId>com.simpligility.maven.plugins</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>4.1.0</version>
    <executions>
        <execution>
            <!-- Skip proguard in the default phase (process-classes)... -->
            <id>override-default</id>
            <configuration>
                <proguard>
                    <skip>true</skip>
                </proguard>
            </configuration>
        </execution>
        <execution>
            <!-- But execute proguard after running the tests
                 Bind to test phase so proguard runs before dexing (prepare package phase)-->
            <id>progurad-after-test</id>
            <phase>test</phase>
            <goals>
                <goal>proguard</goal>
            </goals>
            <configuration>
                <proguard>
                    <skip>false</skip>
                </proguard>
            </configuration>
        </execution>
    </executions>
    <configuration>
        <!-- Other configuration goes here. -->
    </configuration>
</plugin>

关于android-maven-plugin:将proguard绑定(bind)到后期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842942/

相关文章:

Maven 版本插件更新到下一个快照

android - 在 Android Gradle Build 3.1.2 中禁用 list 合并

android - 动态生成多口味配置的包名

android - 运行应用程序和导出未签名的应用程序有什么区别?

java - 通过配对的蓝牙打印机佳能 CP900、CP800 打印图像

javascript - 上传图片不仅仅适用于 Android 原生浏览器

android - 如何在将库发布到 android 中的 bintray 时包含依赖项

java - android辅助功能服务突然停止触发事件

java - 使用 Apache Common Net 从 FTP 下载到设备的损坏的 PDF 文件

java - "Selenium Automation"项目必须有内容/约定吗?