【问题标题】:Excluding BuildConfig.class and R.class from Android library jar in Maven从 Maven 中的 Android 库 jar 中排除 BuildConfig.class 和 R.class
【发布时间】:2013-02-14 04:14:50
【问题描述】:

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

我的问题是 BuildConfig.classR.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>

感谢任何帮助。

【问题讨论】:

  • 如果您运行mvn help:effective-pom,您的&lt;exclude&gt;s 是否最终指向正确的.java 文件?
  • @connor.brinton 这会产生同样的结果(例如**/BuildConfig.java)。

标签: java android maven build jar


【解决方案1】:

这里的技巧是将您的配置应用到构建生命周期的default-jar 阶段并排除.class 文件,而不是.java 文件。为此,您可以将 &lt;id&gt;default-jar&lt;/id&gt; 添加到您的执行中,如下所示:

<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 类。

【讨论】:

  • 谢谢,这确实解决了问题。你有没有机会知道为什么 GPG 插件会签署 maven-source-pluginmaven-javadoc-plugin 而不是 maven-jar-plugin 创建的 jar?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多