6

Tôi đang sử dụng Maven 3.2.3 trên Mac 10.9.5 và có điều này cho plugin trình biên dịch của tôi ...Java 8: Tương đương với "UseSplitVerifier" là gì?

        <plugin> 
              <groupId>org.apache.maven.plugins</groupId> 
              <artifactId>maven-compiler-plugin</artifactId> 
              <version>3.1</version> 
              <configuration> 
                <source>1.8</source> 
                <target>1.8</target> 
                <compilerArgument>-proc:none</compilerArgument> 
                <fork>true</fork> 
                <!-- <compilerId>eclipse</compilerId>--> 
              </configuration> 
              <executions> 
                <execution> 
                  <id>default-testCompile</id> 
                  <phase>test-compile</phase> 
                  <goals> 
                    <goal>testCompile</goal> 
                  </goals> 
                </execution> 
              </executions> 
            </plugin> 

Tôi có điều này cho cấu hình chắc chắn hơn-plugin của tôi ...

    <plugin> 
          <groupId>org.apache.maven.plugins</groupId> 
          <artifactId>maven-surefire-plugin</artifactId> 
          <version>2.17</version> 
          <configuration> 
            <reuseForks>true</reuseForks> 
            <argLine>-Xmx2048m -XX:MaxPermSize=512M -XX:-UseSplitVerifier ${argLine}</argLine> 
            <skipTests>${skipAllTests}</skipTests> 
          </configuration> 
        </plugin> 

Tuy nhiên, khi chạy "mvn clean install" tôi nhận được cảnh báo này ...

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0 

là Java 8 tương đương với "UseSplitVerifier" Cái gì?

+1

Không có tương đương; chỉ cần xóa tùy chọn đó. – Holger

Trả lời

6

Không có tương đương. Lưu ý rằng tùy chọn trong cấu hình của bạn là -UseSplitVerifier (lưu ý trừ đi trước) để tùy chọn cho biết không phải là để sử dụng Trình phân tách Split nhưng bắt đầu bằng Java 8, trình phân tách là bắt buộc.

SplitVerifier được giới thiệu với Java 6, là tùy chọn tại thời điểm đó và trở thành mặc định với Java 7. Nhưng với Java 7, tùy chọn vẫn được hỗ trợ, do đó nó có thể bị tắt trong trường hợp công cụ xử lý bytecode không tương thích .

Điều này có nghĩa là để cung cấp thời gian gia hạn mà các công cụ này có thể được cập nhật để tương thích với thuộc tính bytecode có liên quan StackMapFrame. Thời gian ân hạn đó đã kết thúc.

Nếu điều duy nhất bạn gặp phải là cảnh báo đó, nói cách khác, bạn không gặp phải vấn đề tương thích nào, bạn chỉ có thể xóa tùy chọn đó. Nếu không, bạn phải cập nhật các công cụ/thư viện có vấn đề.

1

Bạn nên ngừng sử dụng -XX: -UseSplitVerifier. Dù sao, nó không được hỗ trợ bởi Java 8. Và nâng cấp maven-compiler-plugin của bạn lên 3.2. Điều đó sẽ giải quyết vấn đề của bạn với vertecization bytecode.

Các vấn đề liên quan