android-maven-plugin:将程序绑定到后期阶段

时间:2015-03-03 22:10:27

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

在我的maven构建中,我想执行proguard目标after the tests,以便更快地获得测试结果。因此,我尝试将其绑定到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>

1 个答案:

答案 0 :(得分:3)

旧答案:

您无法更改阶段proguard运行。但通常您可以隔离到配置文件中,仅在需要时运行,而不是在每个构建时运行。典型的用例是您只为发布版运行的发布配置文件。您还可以将其作为QA配置文件的一部分,并将其用于需要在开发期间超出正常使用范围进行验证的开发版本。

经过一番思考后更新:

您可以通过配置两个执行来将proguard mojo执行更改为其他阶段。一个用于最初在Android Maven插件中配置的进程源阶段设置为跳过。然后为跳过设置为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>