我正在使用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>
感谢任何帮助。
答案 0 :(得分: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.class
,R$drawable.class
,R$layout.class
和R$string.class
。