1

我正在使用 Maven Android 插件来使用apklib打包构建我的 Android 库。这会生成apklib库的存档,因此我还使用 Maven jar 插件来生成可在应用程序中使用的 jar 工件。

我的问题是BuildConfig.class并且R.class被包含在 jar 中,这是我不想要的(真的我想gen完全排除任何东西)。我一直在尝试exclude为他们制定规则,但没有任何成功。这是我在 pom 中使用的 jar 插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>              
                <excludes>
                    <exclude>**/BuildConfig.java</exclude>
                    <exclude>**/R.java</exclude>
                </excludes>
            </configuration>
        </execution>
    </executions>
</plugin>

任何帮助表示赞赏。

4

1 回答 1

2

这里的技巧是将您的配置应用到default-jar构建生命周期的阶段并排除.class文件,而不是.java文件。您可以通过<id>default-jar</id>如下方式添加到执行中来做到这一点:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
        <execution>
            <id>default-jar</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>  
                <excludes>
                    <exclude>**/BuildConfig.class</exclude>
                    <exclude>**/R.class</exclude>
                </excludes>
            </configuration>
        </execution>
    </executions>
</plugin>

您可能还想排除类R$attr.classR$drawable.classR$layout.classR$string.class

于 2013-02-28T05:53:43.247 回答