Skip to content

isPreJava8 wrong assertion #33

@snicoll

Description

@snicoll

Recently the support of -parameters was added and the idea is that it should just ignore the parameter when running on a pre Java8 runtime.

It looks like the assertion can be improved as a build with Java7 fails if the parameters flag is provided. I guess it's related with the fact that the source and version have been (wrongly) set on 1.8 on a JDK7 runtime. Is there a way to check we're running with a JDK7 compiler?

-target 1.8 will fail with a more explicit exception but because we set an invalid flag we don't have the chance to reach that point :(

See spring-projects/spring-boot#10082 (comment)

Full log for the plugin

[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:3.6.2:compile' with basic configurator --> [DEBUG] (f) basedir = /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat [DEBUG] (f) buildDirectory = /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target [DEBUG] (f) compilePath = [/Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/classes, /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-2.0.0.BUILD-SNAPSHOT.jar, /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot/2.0.0.BUILD-SNAPSHOT/spring-boot-2.0.0.BUILD-SNAPSHOT.jar, /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.0.BUILD-SNAPSHOT/spring-boot-autoconfigure-2.0.0.BUILD-SNAPSHOT.jar, /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-logging-2.0.0.BUILD-SNAPSHOT.jar, /Users/bclozel/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar, /Users/bclozel/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar, /Users/bclozel/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar, /Users/bclozel/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.25/log4j-over-slf4j-1.7.25.jar, /Users/bclozel/.m2/repository/org/springframework/spring-core/5.0.0.RC3/spring-core-5.0.0.RC3.jar, /Users/bclozel/.m2/repository/org/springframework/spring-jcl/5.0.0.RC3/spring-jcl-5.0.0.RC3.jar, /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-tomcat-2.0.0.BUILD-SNAPSHOT.jar, /Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.16/tomcat-embed-core-8.5.16.jar, /Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.5.16/tomcat-embed-el-8.5.16.jar, /Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.16/tomcat-embed-websocket-8.5.16.jar, /Users/bclozel/.m2/repository/org/springframework/spring-webmvc/5.0.0.RC3/spring-webmvc-5.0.0.RC3.jar, /Users/bclozel/.m2/repository/org/springframework/spring-aop/5.0.0.RC3/spring-aop-5.0.0.RC3.jar, /Users/bclozel/.m2/repository/org/springframework/spring-beans/5.0.0.RC3/spring-beans-5.0.0.RC3.jar, /Users/bclozel/.m2/repository/org/springframework/spring-context/5.0.0.RC3/spring-context-5.0.0.RC3.jar, /Users/bclozel/.m2/repository/org/springframework/spring-expression/5.0.0.RC3/spring-expression-5.0.0.RC3.jar, /Users/bclozel/.m2/repository/org/springframework/spring-web/5.0.0.RC3/spring-web-5.0.0.RC3.jar, /Users/bclozel/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar] [DEBUG] (f) compileSourceRoots = [/Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/src/main/java] [DEBUG] (f) compilerId = javac [DEBUG] (f) debug = true [DEBUG] (f) encoding = UTF-8 [DEBUG] (f) failOnError = true [DEBUG] (f) failOnWarning = false [DEBUG] (f) forceJavacCompilerUse = false [DEBUG] (f) fork = false [DEBUG] (f) generatedSourcesDirectory = /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/generated-sources/annotations [DEBUG] (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.6.2:compile {execution: default-compile} [DEBUG] (f) optimize = false [DEBUG] (f) outputDirectory = /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/classes [DEBUG] (f) parameters = true [DEBUG] (f) project = MavenProject: org.springframework.boot:spring-boot-sample-tomcat:2.0.0.BUILD-SNAPSHOT @ /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/pom.xml [DEBUG] (f) projectArtifact = org.springframework.boot:spring-boot-sample-tomcat:jar:2.0.0.BUILD-SNAPSHOT [DEBUG] (f) session = org.apache.maven.execution.MavenSession@b2d2e71 [DEBUG] (f) showDeprecation = false [DEBUG] (f) showWarnings = false [DEBUG] (f) skipMultiThreadWarning = false [DEBUG] (f) source = 1.8 [DEBUG] (f) staleMillis = 0 [DEBUG] (f) target = 1.8 [DEBUG] (f) useIncrementalCompilation = true [DEBUG] (f) verbose = false [DEBUG] -- end configuration -- [DEBUG] Using compiler 'javac'. [DEBUG] Adding /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/generated-sources/annotations to compile source roots: /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/src/main/java [DEBUG] New compile source roots: /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/src/main/java /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/generated-sources/annotations [DEBUG] CompilerReuseStrategy: reuseCreated [DEBUG] useIncrementalCompilation enabled [DEBUG] Stale source detected: /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/src/main/java/sample/tomcat/web/SampleController.java [DEBUG] Stale source detected: /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/src/main/java/sample/tomcat/service/HelloWorldService.java [DEBUG] Stale source detected: /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/src/main/java/sample/tomcat/SampleTomcatApplication.java [INFO] Changes detected - recompiling the module! [DEBUG] Classpath: [DEBUG] /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/classes [DEBUG] /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-2.0.0.BUILD-SNAPSHOT.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot/2.0.0.BUILD-SNAPSHOT/spring-boot-2.0.0.BUILD-SNAPSHOT.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.0.BUILD-SNAPSHOT/spring-boot-autoconfigure-2.0.0.BUILD-SNAPSHOT.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-logging-2.0.0.BUILD-SNAPSHOT.jar [DEBUG] /Users/bclozel/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar [DEBUG] /Users/bclozel/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar [DEBUG] /Users/bclozel/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar [DEBUG] /Users/bclozel/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.25/log4j-over-slf4j-1.7.25.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/spring-core/5.0.0.RC3/spring-core-5.0.0.RC3.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/spring-jcl/5.0.0.RC3/spring-jcl-5.0.0.RC3.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-tomcat-2.0.0.BUILD-SNAPSHOT.jar [DEBUG] /Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.16/tomcat-embed-core-8.5.16.jar [DEBUG] /Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.5.16/tomcat-embed-el-8.5.16.jar [DEBUG] /Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.16/tomcat-embed-websocket-8.5.16.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/spring-webmvc/5.0.0.RC3/spring-webmvc-5.0.0.RC3.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/spring-aop/5.0.0.RC3/spring-aop-5.0.0.RC3.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/spring-beans/5.0.0.RC3/spring-beans-5.0.0.RC3.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/spring-context/5.0.0.RC3/spring-context-5.0.0.RC3.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/spring-expression/5.0.0.RC3/spring-expression-5.0.0.RC3.jar [DEBUG] /Users/bclozel/.m2/repository/org/springframework/spring-web/5.0.0.RC3/spring-web-5.0.0.RC3.jar [DEBUG] /Users/bclozel/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar [DEBUG] Source roots: [DEBUG] /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/src/main/java [DEBUG] /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/generated-sources/annotations [DEBUG] Command line options: [DEBUG] -d /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/classes -classpath /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/classes:/Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-2.0.0.BUILD-SNAPSHOT.jar:/Users/bclozel/.m2/repository/org/springframework/boot/spring-boot/2.0.0.BUILD-SNAPSHOT/spring-boot-2.0.0.BUILD-SNAPSHOT.jar:/Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.0.BUILD-SNAPSHOT/spring-boot-autoconfigure-2.0.0.BUILD-SNAPSHOT.jar:/Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-logging-2.0.0.BUILD-SNAPSHOT.jar:/Users/bclozel/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/bclozel/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/bclozel/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/Users/bclozel/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.25/log4j-over-slf4j-1.7.25.jar:/Users/bclozel/.m2/repository/org/springframework/spring-core/5.0.0.RC3/spring-core-5.0.0.RC3.jar:/Users/bclozel/.m2/repository/org/springframework/spring-jcl/5.0.0.RC3/spring-jcl-5.0.0.RC3.jar:/Users/bclozel/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.0.0.BUILD-SNAPSHOT/spring-boot-starter-tomcat-2.0.0.BUILD-SNAPSHOT.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.16/tomcat-embed-core-8.5.16.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.5.16/tomcat-embed-el-8.5.16.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.16/tomcat-embed-websocket-8.5.16.jar:/Users/bclozel/.m2/repository/org/springframework/spring-webmvc/5.0.0.RC3/spring-webmvc-5.0.0.RC3.jar:/Users/bclozel/.m2/repository/org/springframework/spring-aop/5.0.0.RC3/spring-aop-5.0.0.RC3.jar:/Users/bclozel/.m2/repository/org/springframework/spring-beans/5.0.0.RC3/spring-beans-5.0.0.RC3.jar:/Users/bclozel/.m2/repository/org/springframework/spring-context/5.0.0.RC3/spring-context-5.0.0.RC3.jar:/Users/bclozel/.m2/repository/org/springframework/spring-expression/5.0.0.RC3/spring-expression-5.0.0.RC3.jar:/Users/bclozel/.m2/repository/org/springframework/spring-web/5.0.0.RC3/spring-web-5.0.0.RC3.jar:/Users/bclozel/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar: -sourcepath /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/src/main/java:/Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/generated-sources/annotations: -s /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/generated-sources/annotations -g -parameters -nowarn -target 1.8 -source 1.8 -encoding UTF-8 [DEBUG] incrementalBuildHelper#beforeRebuildExecution [INFO] Compiling 3 source files to /Users/bclozel/workspace/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/classes [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.594 s [INFO] Finished at: 2017-08-28T16:21:17+02:00 [INFO] Final Memory: 19M/310M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.2:compile (default-compile) on project spring-boot-sample-tomcat: Fatal error compiling: invalid flag: -parameters -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.2:compile (default-compile) on project spring-boot-sample-tomcat: Fatal error compiling	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)	at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)	at java.lang.reflect.Method.invoke(Method.java:606)	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling	at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:963)	at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:158)	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)	... 20 more Caused by: org.codehaus.plexus.compiler.CompilerException: invalid flag: -parameters	at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:173)	at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)	at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:952)	... 23 more Caused by: java.lang.IllegalArgumentException: invalid flag: -parameters	at com.sun.tools.javac.api.JavacTool.processOptions(JavacTool.java:231)	at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:199)	at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68)	at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:125)	... 25 more 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions