在我的 Maven 构建过程中,我遇到了这样的错误:
[错误] /sandbox/mobile-apps/quickdroid/test/src/com/xxx/MyActivity.java:[14,21] java.util.LinkedHashMap.Entry 在 java.util.LinkedHashMap 中具有私有访问权限
我用一个类创建了一个简单的测试项目。此错误对应于以下代码:
LinkedHashMap.Entry<String, Object> test;
Intellij 可以很好地编译此代码。如果我在我的 intellij javac 参数中更改 -target=1.5,那么我会得到同样的错误。下面在我的 pom.xml 中,我指定了目标 1.6,并使用 -X 参数验证了 maven 正在获取此设置。为什么我会收到错误,好像它仍在编译目标 1.5?
maven -X 输出的摘录:1.6
.
[调试] (f) 源 = 1.6 [调试] (f) staleMillis = 0 [调试] (f) 目标 = 1.6
.
[调试] 命令行选项:[调试] -d /sandbox/mobile-apps/quickdroid/test/target/classes -classpath {...} -g -nowarn -target 1.6 -source 1.6
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
http://maven.apache.org/maven-v4_0_0.xsd">4.0.0
<groupId>com.xxx.android</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>test</name>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.1.1.4</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.3.2</version>
<extensions>true</extensions>
<configuration>
<sdk>
<!-- platform or api level (api level 4 = platform 1.6)-->
<platform>11</platform>
</sdk>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>