IntelliJ中Java 17与GWT 2.9项目配置问题求助
解决IntelliJ中Java 17 + GWT 2.9项目配置问题的方案
一、手动添加GWT SDK与模块配置
- 打开
Project Structure(快捷键Ctrl+Alt+Shift+S),进入SDKs选项卡,点击+选择GWT SDK,定位到本地已下载的GWT 2.9.0安装目录,完成SDK添加。 - 回到
Modules选项卡,选中你的项目模块,点击+选择GWT,在弹出的配置窗口中:- 勾选
Use GWT,选择刚才添加的GWT 2.9.0 SDK; - 配置
Module name和Output path; - 在
Sources里指定GWT客户端代码目录(通常是src/main/java下的client包)和资源目录。
- 勾选
二、调整IntelliJ的JavaEE版本兼容设置
- 进入
Project Structure->Modules-> 对应模块的Dependencies选项卡,找到JakartaEE相关依赖,右键选择Remove移除。 - 手动添加JavaEE 8(GWT 2.9支持的版本)依赖:点击
+选择Library->From Maven,搜索javax.servlet:javax.servlet-api:4.0.1和javax.servlet.jsp:javax.servlet.jsp-api:2.3.3,添加到模块依赖中。 - 打开
Settings(快捷键Ctrl+Alt+S),进入Build, Execution, Deployment->Compiler->Java Compiler,将项目的Target bytecode version设置为17;同时注意,GWT 2.9.0官方仅支持到Java 11,Java 17需额外配置——在编译参数中添加--enable-preview,并在GWT编译器参数里指定-sourceLevel 17。
三、通过Maven/Gradle构建脚本配置(推荐)
Maven配置示例
在pom.xml中添加GWT插件和依赖:
<properties> <gwt.version>2.9.0</gwt.version> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-user</artifactId> <version>${gwt.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-dev</artifactId> <version>${gwt.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>gwt-maven-plugin</artifactId> <version>${gwt.version}</version> <executions> <execution> <goals> <goal>compile</goal> <goal>devmode</goal> </goals> </execution> </executions> <configuration> <sourceLevel>${java.version}</sourceLevel> <extraJvmArgs>--enable-preview</extraJvmArgs> <module>com.yourproject.YourGwtModule</module> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <compilerArgs>--enable-preview</compilerArgs> </configuration> </plugin> </plugins> </build>
配置完成后,执行mvn gwt:devmode启动开发模式,IntelliJ会自动识别Maven配置的GWT模块。
Gradle配置示例
在build.gradle中添加:
plugins { id 'java' id 'war' id 'com.google.gwt' version '0.10.0' } repositories { mavenCentral() } dependencies { implementation 'com.google.gwt:gwt-user:2.9.0' implementation 'com.google.gwt:gwt-dev:2.9.0' providedCompile 'javax.servlet:javax.servlet-api:4.0.1' } gwt { gwtVersion = '2.9.0' modules 'com.yourproject.YourGwtModule' sourceLevel = '17' jvmArgs = ['--enable-preview'] }
执行gradle gwtDev启动开发模式,IntelliJ会同步Gradle配置并加载GWT模块。
四、降级IntelliJ版本(备选)
如果上述方法都无效,可以尝试降级到IntelliJ 2021.x版本——该版本的Project Structure中仍保留JavaEE选项,未被JakartaEE完全替代,更适配GWT 2.9.0的配置逻辑。
内容的提问来源于stack exchange,提问作者Amar
相关产品推荐
相关产品推荐

