问题:在用 idea 编译和构建 Java Web 项目的时候,项目的目录中没有 target文件夹,生成的 out 文件夹中,没有 class 文件。
办法:出现这种情况,很可能是因为未加载的模块出现在了 iml 文件中,导致生成 taget 的时候出错,进而导致 out 文件内 class 文件的缺失,所以我们只需在 iml 文件中,把相应的配置信息删除即可。找到 xxx.iml 文件,文件内容大概像这样:
<?xml version="1.0" encoding="UTF-8"?> <module type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="web" name="Web"> <configuration> <descriptors> <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" /> </descriptors> <webroots> <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" /> </webroots> <sourceRoots> <root url="file://$MODULE_DIR$/src/main/java" /> <root url="file://$MODULE_DIR$/src/main/resources" /> </sourceRoots> </configuration> </facet> </component> <component name="NewModuleRootManager" inherit-compiler-output="true"> <exclude-output /> <content url="file://$MODULE_DIR$" /> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component> </module>
接着如下所示的代码删除
<component name="NewModuleRootManager" inherit-compiler-output="true"> <exclude-output /> <content url="file://$MODULE_DIR$" /> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component>
最后的文件看起来是这样:
<?xml version="1.0" encoding="UTF-8"?> <module type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="web" name="Web"> <configuration> <descriptors> <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" /> </descriptors> <webroots> <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" /> </webroots> <sourceRoots> <root url="file://$MODULE_DIR$/src/main/java" /> <root url="file://$MODULE_DIR$/src/main/resources" /> </sourceRoots> </configuration> </facet> </component> </module>