В моем проекте мы собираемся использовать Java 7 для maven-compiler-plugin
и предполагаем, что после компиляции Maven весь код, использующий Java 8, не должен успешно компилироваться.
Однако в моем случае есть файл, использующий Arrays.stream(T[] array)
, который можно использовать из Java 8, и он все еще успешно компилируется. Ниже приведены некоторые файлы pom.xml
, которые настраивают версию Java. Не могли бы вы взглянуть и дать мне понять, почему мои файлы все еще могут успешно компилироваться, хотя я настроил их на Java 7?
Для pom.xml
я пропускаю зависимости и так далее и перечисляю только свойства и сборку.
<properties>
<java.version>1.7</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
И для файла я использую метод в Java 8, строка примерно такая:
buffer.append(Arrays.stream(arg).collect(Collectors.joining("/")));
И я хочу, чтобы, поскольку я настраиваю версию Java на 7 в Maven и после компиляции, файл, использующий Java 8, не должен успешно компилироваться и показывать такие ошибки, как «... разрешены только на уровне исходного кода 1.8 или выше. ".