IntelliJ IDEA使用教程、快捷键
使用IntelliJ IDEA编译的奇技淫巧
编译时遇到控制台打印以下信息:
Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
Information:java: Errors occurred while compiling module ‘opm’
Information:javac 1.8.0_144 was used to compile java sources
Information:Module “opm” was fully rebuilt due to project configuration/dependencies changes
Information:2018/3/30 下午5:36 - Compilation completed with 1 error and 0 warnings in 7s 281ms
Error:java: Compilation failed: internal java compiler error
编译器识别不了部署资源文件根路径,如下图:
原因分析:资源文件路径自定义,不在src文件下。
解决问题2方法:
(1)方法一、在pom.xml加入部署资源文件根路径
org.apache.maven.plugins
maven-war-plugin
3.1.0
WebRoot
(2)方法二、手动更改部署根资源文件路径(缺点是每次maven reimport会改变,使到编译器识别不了)

Error:(19, 17) java: 程序包org.jsoup不存在
原因分析:根资源文件路径变化。
对项目进行Maven install操作:
控制台打印:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project JeeSite2: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
搜索资料造成此问题的原因是:打包时在WEB-INF/文件夹下找不到web.xml文件。
解决问题5方法:
(1)如果WebContent/WEB-INF/web.xml文件存在并且在src文件夹下,需要在pom.xml文件中加上maven-war-plugin插件。
org.apache.maven.plugins
maven-war-plugin
3.1.0
WebContent
(2)如果WebContent/WEB-INF/web.xml文件存在但是不存在src文件夹下(自定义资源文件目录),需要在pom.xml文件中加上maven-war-plugin插件。
(WebRoot是资源文件夹的根目录,自定义的)
org.apache.maven.plugins
maven-war-plugin
3.1.0
WebRoot
(2)如果web.xml文件不存在,则按下面的方式配置。
org.apache.maven.plugins
maven-war-plugin
3.0.0
false
用的IntelliJ IDEA开发工具,操作系统mac os 10.13.3。打开工程,发现每个文件夹的java类文件都出现橙色倒L型符号。直接运行项目,发现报错404。

查询资料和工程的配置,需要理解几个概念。
(1)Source roots (or source folders)
通过这个类指定一个文件夹,你告诉IntelliJ IDEA,这个文件夹及其子文件夹中包含的源代码,可以编译为构建过程的一部分。
(2)Test source roots (or test source folders; shown as rootTest)
这些根类似于源根,但用于用于测试的代码(例如用于单元测试)。测试源文件夹允许您将与测试相关的代码与生产代码分开。
通常,源和测试源的编译结果被放置在不同的文件夹中。
(3)Resource roots
用于应用程序中的资源文件(图像、各种配置XML和属性文件等)。在构建过程中,资源文件夹的所有内容都复制到输出文件夹中,如下所示。类似于源,您可以指定生成资源。您还可以指定输出文件夹中的文件夹,您的资源应该复制到。
(4)Test resource roots
是资源文件与您的测试源有关。在所有其他方面,这些文件夹类似于资源文件夹。
打开project structrue -> project settints -> Modules -> Sources,如下图(发现问题的来源)

解决问题5方法:将src根文件夹Markas: Sources
Error:(184, 50) java: -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
原因分析:编译器的语言环境不兼容,选择7或者以上的版本去适配
解决IDEA自动重置LanguageLevel和JavaCompiler版本的问题
每次maven reimport,idea 的Java Complier 里的Target bytecode version变为1.5。

同时,project settings -> modules,Language level 变为5.0。

原因分析:pom.xml没有对maven-compiler-plugin设置正确。
解决问题7方法:
在pom.xml中
(1)固定的jdk版本 (只修改Java Complier版本)
maven-compiler-plugin
1.7
(2)按需设置(只修改Java Complier版本,适用于自己公司的框架,应该在框架内就有定义版本)
maven-compiler-plugin
${java.version}
(3)解决IDEA自动重置LanguageLevel和JavaCompiler版本的问题
maven-compiler-plugin
3.6.1
1.8
以上任选一个适合你项目的方法。
####问题8:
HttpServletRequest.getServletContext()一直提示找不到,而引出的问题
request.getServletContext().getRealPath,context报红
原因分析:web.xml目录结构变了,不是放在默认的src文件夹目录下
解决问题8方法:
(1)解决request.getServletContext().getRealPath,context报红的问题
在pom.xml中,
操作步骤一,
javax.servlet
javax.servlet-api
3.1.0
provided
步骤二,添加本地tomcat的lib文件夹。如果tomcat8不行,就还tomcat7试一试。
(2)解决 javax.persistence.Column 报红的问题
因为项目资源文件夹路径变了,所以要add library。

javax.persistence
persistence-api
1.0
结尾,奉上pom.xml
4.0.0
JeeSite2
JeeSite2
0.0.1-SNAPSHOT
war
opm
org.apache.maven.plugins
maven-war-plugin
3.1.0
WebRoot
maven-compiler-plugin
3.6.1
1.8
4.0.8.RELEASE
5.1.1.Final
3.2.8
1.2.2
1.0.11
2.6.9
2.0.4
1.2.3
2.4.2
5.15.1
1.7.7
3.3.2
2.4
1.9
1.3.1
1.9.1
2.2.3
1.1.40
1.4.7
17.0
5.5.1
3.9
2.3.20
5.1.30
10.2.0.4.0
1.3.1
1.6
2.2
7.6.14.v20131031
8181
UTF-8
true
oschina-repos
Oschina Releases
http://maven.aliyun.com/content/groups/public
java-repos
Java Repository
http://download.java.net/maven/2/
springsource-repos
SpringSource Repository
http://repo.spring.io/release/
central-repos
Central Repository
http://repo.maven.apache.org/maven2
central-repos2
Central Repository 2
http://repo1.maven.org/maven2/
activiti-repos
Activiti Repository
https://maven.alfresco.com/nexus/content/groups/public
activiti-repos2
Activiti Repository 2
https://app.camunda.com/nexus/content/groups/public
activiti-repos3
Activiti Repository 3
https://repo1.maven.org/maven2/
thinkgem-repos
ThinkGem Repository
http://git.oschina.net/thinkgem/repos/raw/master
thinkgem-repos2
ThinkGem Repository 2
https://raw.github.com/thinkgem/repository/master
oschina-repos
Oschina Releases
http://maven.aliyun.com/content/groups/public
org.springframework
spring-core
${spring.version}
commons-logging
commons-logging
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-aop
${spring.version}
commons-logging
commons-logging
org.springframework
spring-tx
${spring.version}
org.springframework
spring-orm
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.hibernate
hibernate-validator
${validator.version}
org.aspectj
aspectjrt
1.7.4
org.aspectj
aspectjweaver
1.7.4
cglib
cglib
3.1
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis-spring.version}
com.alibaba
druid
${druid.version}
mysql
mysql-connector-java
${mysql.driver.version}
runtime
net.sourceforge.jtds
jtds
${mssql.driver.version}
runtime
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-oxm
${spring.version}
opensymphony
sitemesh
${sitemesh.version}
taglibs
standard
1.1.2
jar
javax.servlet
jstl
1.2
jar
javax.servlet
servlet-api
2.5
provided
javax.servlet.jsp
jsp-api
2.1
provided
net.sf.ehcache
ehcache-core
${ehcache.version}
net.sf.ehcache
ehcache-web
${ehcache-web.version}
redis.clients
jedis
2.5.1
org.apache.shiro
shiro-core
${shiro.version}
org.apache.shiro
shiro-spring
${shiro.version}
org.apache.shiro
shiro-cas
${shiro.version}
commons-logging
commons-logging
org.apache.shiro
shiro-web
${shiro.version}
org.apache.shiro
shiro-ehcache
${shiro.version}
org.activiti
activiti-engine
${activiti.version}
org.activiti
activiti-spring
${activiti.version}
org.activiti
activiti-explorer
${activiti.version}
vaadin
com.vaadin
dcharts-widget
org.vaadin.addons
activiti-simple-workflow
org.activiti
org.activiti
activiti-modeler
${activiti.version}
org.activiti
activiti-diagram-rest
${activiti.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.slf4j
jcl-over-slf4j
${slf4j.version}
org.slf4j
jul-to-slf4j
${slf4j.version}
org.apache.commons
commons-lang3
${commons-lang3.version}
commons-io
commons-io
${commons-io.version}
commons-codec
commons-codec
${commons-codec.version}
commons-fileupload
commons-fileupload
${commons-fileupload.version}
commons-beanutils
commons-beanutils
${commons-beanutils.version}
commons-logging
commons-logging
com.google.guava
guava
${guava.version}
com.fasterxml.jackson.core
jackson-core
${jackson.version}
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
com.fasterxml.jackson.core
jackson-annotations
${jackson.version}
com.fasterxml.jackson.module
jackson-module-jaxb-annotations
${jackson.version}
com.thoughtworks.xstream
xstream
${xstream.version}
net.sf.dozer
dozer
${dozer.version}
org.freemarker
freemarker
${freemarker.version}
javax.mail
mail
1.4.7
javax.activation
activation
1.1.1
org.apache.poi
poi
${poi.version}
org.apache.poi
poi-ooxml
${poi.version}
org.apache.poi
poi-ooxml-schemas
${poi.version}
com.drewnoakes
metadata-extractor
2.6.2
com.google.zxing
core
2.2
com.google.zxing
javase
2.2
org.wltea
analyzer
2012_u6
net.coobird
thumbnailator
0.4.2
com.ckfinder
apache-ant-zip
2.3
com.ckfinder
ckfinder
2.3
com.ckfinder
ckfinderplugin-fileeditor
2.3
com.ckfinder
ckfinderplugin-imageresize
2.3
junit
junit
4.11
org.springframework
spring-test
${spring.version}
bitwalker
UserAgentUtils
1.13
javax.servlet
javax.servlet-api
3.1.0
provided
javax.persistence
persistence-api
1.0