LuciferYang commented on PR #46288: URL: https://github.com/apache/spark/pull/46288#issuecomment-2094048178
> > Thank you for the analysis and sharing, @panbingkun and @LuciferYang . > > > [INFO] Restricted to JDK 17 yet org.jline:jline:jar:3.25.1:compile contains org/jline/terminal/impl/ffm/CLibrary$termios.class targeted to 65.-257 > > Oh... It seems that `CLibrary$termios.class` is not compatible with Java 8. > > In jline 3.25.1, CLibrary references some implementations that were moved to the `java.lang.foreign` package in Java 21, but in Java 17, they were still in the `jdk.incubator.foreign` package. > > However, in jline 3.24.1, CLibrary also import classes in `java.lang.foreign` package, it's just that the final jline jar does not include the `terminal-ffm` module, so it won't trigger a compilation error from the `maven-enforcer-plugin`. > > So it seems that using jline 3.25.1 should not pose any issues. It's unclear whether it's possible to workaround this by modifying the rules of the `maven-enforcer-plugin`. @panbingkun > > Let me try, We should be able to refer to the following: [mojohaus/extra-enforcer-rules#46](https://github.com/mojohaus/extra-enforcer-rules/issues/46) <img alt="image" width="403" src="https://private-user-images.githubusercontent.com/15246973/327904746-db42b4e1-650e-44c2-9cfb-d9f6dc9914b8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTQ4MDQxMDYsIm5iZiI6MTcxNDgwMzgwNiwicGF0aCI6Ii8xNTI0Njk3My8zMjc5MDQ3NDYtZGI0MmI0ZTEtNjUwZS00NGMyLTljZmItZDlmNmRjOTkxNGI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTA0VDA2MjMyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ2NThlNjkzNWU3YTIyNDhlNTNlYTIxNjNlNzcwODMxNDUzYzg4YjIxYWFjNzU1YTViMThlZmNhYTI5MGRkNjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.QZdIj6I7WJMaGyRjiuN8ziJ9ilUQAfLN mQ6LWSlEag4"> > > But I'm not sure we really want to do this? We have 2 options: > > 1. Use `org.jline:jline:3.14.1` (exclude `org.jline:jline:3.15.1` from `org.scala-lang:scala-compiler:jar:2.13.14`) > 2. Use `org.jline:jline:3.15.1` (Modify the rule `enforceBytecodeVersion` by configuring `ignoreClasses ` and bypass it) > > WDYT @dongjoon-hyun If it can be confirmed that Scala 2.13.14 does not use this class(`CLibrary$termios`), I think it can be done this way because , but is this the only issue? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org