字体设置:
file-setting-editor-font
主体颜色:
file-setting-editor-color schema-general ;schema选择intelliJ Light;text下面点开default text,然后设置颜色
模块
导入模块:
关联导入(源文件如果丢失,模块也就没有了):file-new-module from existing sources,找到相关文件夹,选择文件夹下的iml文件-ok
创建方式导入:在自己已有项目上创建(只是图个方便,这样模块所在目录就好确定了),文件目录可以自己再定义,取个名字,再将模块代码复制进来。
删除模块:
最干净直接的方式是先右键remove module,然后打开模块所在目录直接删。
还可以选中项目delete,但这样很可能删不干净,还需要去模块所在目录的.idea,打开module.xml,删除相关module信息,还不行就重启idea。
快捷键
多行注释:ctrl+shift+/
加入代码结构:ctrl+alt+t
批量重命名:shift+f6
关闭Idea自动注入检查
当自动注入的是框架创建的代理类时,idea没有扫描到对应class,直接注入就有可能报错,解决办法:
inspection ''Autowiring for bean class..."/edit inspection ... /将'Autowiring for bean class的勾选取消或将serverity设置成其他提示等级。
中文格式设置
file/setting/editor/file encoding
导入自定义模块报错
当我们在idea中导入自己写的模块时,pom导入了相应依赖,项目就不会报错。
但当我们compile时会报错,原因是idea中有了依赖,但maven仓库中还没有。
这时我们需要使用install命令,将依赖build到maven仓库。
maven相关
依赖冲突问题
路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
声明优先:当资源在相同层级被依赖时,配置顺序靠前的生效
特殊优先:当同级配置了相同资源的不同版本,后配置的生效
可选依赖
<dependency>
<groupId>com.xxz</groupId>
<artifactId>maven_pojo</artifactId>
<version>1.0-SNAPSHOT</version>
<!--隐藏当前依赖,对外将不具有依赖传递性-->
<optional>true</optional>
</dependency>
排除不需要的依赖(例如导入的第三方东西,自己又不能改就可以用)
<dependency>
<groupId>com.xxz</groupId>
<artifactId>maven_dao</artifactId>
<version>1.0-SNAPSHOT</version>
<!--排除依赖是隐藏当前资源对应的依赖关系-->
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
聚合
由于多个模块都依赖于某公共模块,当这个公共模块改动时,所有的模块都会受影响,这里可以引入一个管理模块,让所有模块一起编译,如果有依赖问题当时就能发现。
做法:
新建一个模块,pom中的package标签值写成pom:
<packaging>pom</packaging>
然后将要一起打包的所有模块都配在pom文件中:
<modules>
<module>../maven_ssm</module>
<module>../maven_pojo</module>
<module>../maven_dao</module>
</modules>
继承
按照上面聚合的方式设置父工程。
子工程配置:
<parent>
<groupId>com.itheima</groupId>
<artifactId>maven_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<!--指定父工程的pom文件-->
<relativePath>../maven_parent/pom.xml</relativePath>
</parent>
然后父工程写的依赖子工程自动就有了。
部分约束,dependencyManagement给子模块选择,需要的话就自己写依赖(不加版本,版本由父工程指定,如果自己写了也行,就不再受父工程约束)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
……
</dependencies>
</dependencyManagement>
属性
定义属性:
<properties>
<spring.version>5.2.10.RELEASE</spring.version>
<junit.version>4.12</junit.version>
<jdbc.url>jdbc:mysql://127.0.0.1:3306/ssm_db</jdbc.url>
</properties>
引用属性:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
${spring.version}</version>
</dependency>
如果想让配置文件也可以解析,那需要配置相应的maven设置并给出相应的范围:
<build>
<resources>
<resource>
<!--这里可以直接配相对路径,但这里用了系统属性,范围更广-->
${project.basedir}/src/main/resources</directory> <filtering>true</filtering>
</resource>
</resources>
</build>
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=${jdbc.url}
jdbc.username=root
jdbc.password=root
上面的${project.basedir}是pom的系统的属性,
pom的属性列表有:
自定义属性(常用)${自定义属性名} 如:${spring.version}
内置属性 ${内置属性名} 如:${basedir} ${version}
Setting属性 ${setting.属性名} 如:${settings.localRepository}
Java系统属性 ${系统属性分类.系统属性名} 如:${user.home}
环境变量属性 ${env.环境变量属性名} 如:${env.JAVA_HOME}
mvn help:system
可以看到相应的属性。
版本管理
SNAPSHOT(快照版本)还在开发中的版本
RELEASE(发布版本) 向外部发布的版本,
发布版本(进行了相应的测试,发布出来供用户尝鲜)
alpha版
beta版
纯数字版
打war包时,忽略web.xml检查
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
maven图标:
这个是用于显示maven依赖的层级的
这个是用于执行maven命令的
跳过测试
跳过测试的三种方式:
第一种是点击图标
第二种是执行mvn命令:
mvn install –D skipTests
第三种是pom文件手动配置:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<skipTests>true</skipTests><!--设置跳过测试-->
<includes><!--包含指定的测试用例-->
<include>**/User*Test.java</include>
</includes>
<excludes><!--,如果不跳过的话可以配置,排除指定的测试用例-->
<exclude>**/User*TestCase.java</exclude>
</excludes>
</configuration>
</plugin>
pom在多环境开发的作用
<!--定义多环境-->
<profiles>
<!--定义具体的环境:生产环境-->
<profile>
<!--定义环境对应的唯一名称-->
<id>env_dep</id>
<!--定义环境中专用的属性值-->
<properties>
<jdbc.url>jdbc:mysql://127.0.0.1:3306/ssm_db</jdbc.url>
</properties>
<!--设置默认启动的配置-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--定义具体的环境:开发环境-->
<profile>
<id>env_pro</id>
……
</profile>
</profiles>
点击上面的m图标,-P指定环境
mvn install –P pro_env