IDEA

250 阅读5分钟

1:IDEA

1:IDEA常用快捷键

1.  Shirt + Shirt :查找接口路径;
2.  Ctrl + Shirt + F :全局搜索;
3.  Ctrl + Shirt + R :全局替换;
4.  Ctrl + Shirt + O:清除无效包;
5.  Ctrl + Y :删除空;
6.  Ctrl + Alt+ L:代码格式化;
7.  Ctrl + Shift + +Alt + J : Alibaba Java Coding Guidelines 进行规范扫描;
8.  把代码块提取成方法:Ctrl+Alt+M;

2:IDEA新建java项目

1:新建Java项目  选择 Spring Initializr (Spring Boot 项目模板)

image.png


2:新建Java项目 项目名称为 jenkins-demo           

直接修改Artifact为jenkins-demo

groupId和artifactId是maven管理项目包时用作区分的字段
groupId:一般分为多个段,其中前两段,第一段为域,第二段为公司名称
artifactId:artifactId一般是项目名或者模块名

注意:可以进行以下规范修改
修改Description的Demo为 jenkinsDemo 
修改Package的jenkinsdemo为 jenkins

image.png


3:一直next  (需要引入的maven 可以之后在建立项目后 在pom上引用)


4:设置项目所在路径 以及 项目名称

image.png


5:Project Structure 设置Modules 里面的Mark as  设置新项目的文件属性

image.png


6:注意设置项目的maven 路径是不是自己电脑的maven路径

image.png


7:注意设置项目的git 路径是不是自己电脑的git路径

image.png


8:设置为git项目  Create git Repository

image.png


9:GitLab新建项目

项目名称为 jenkins-demo 与 IDEA创建的新项目同名

10:Copy  GitLab里面的SSH  或者HTTPS 连接

image.png


11:选择VCS里面 Remotes  设置git的Remotes路径

image.png


12:可以设置项目的名称jenkins-demo   以及 对应远程仓库路径 

image.png


13:选择远程仓库名称(即是推送该名称对应路径的远程仓库)

jenkins-demo  :master(master为分支名称)

image.png

3:IDEA项目中的自动生成的文件

image.png


1: .idea文件夹:存放项目的配置信息

    包括数据源,类库,项目字符编码,历史记录,版本控制信息等

2: .mvn文件夹:存放mvnw相关文件

    存放着maven-wrapper.properties和相关jar包以及名为MavenWrapperDownloader的java文件

3: .gitignore:分布式版本控制系统git的配置文件,意思为忽略提交

     在 .gitingore 文件中,遵循相应的语法,即在每一行指定一个忽略规则。 如:.log、/target/、.idea

4: .iml文件:intellij idea的工程配置文件

    里面包含当前project的一些配置信息,如模块开发的相关信息,比如java组件,maven组件,插件组件等,
    还可能会存储一些模块路径信息,依赖信息以及一些别的信息。

5: mvnw:全名是maven wrapper的文件

    它的作用是在maven-wrapper.properties文件中记录你要使用的maven版本,当用户执行mvnw clean 命令时,
    发现当前用户的maven版本和期望的版本不一致,那么就下载期望的版本,然后用期望的版本来执行mvn命令

6: mvnw.cmd:执行mvnw命令的cmd入口

     *注:mvnw文件适用于Linux(bash),mvnw.cmd适用于Windows 环境。

7: pom.xml:项目对象模型(核心重要)

     pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,
     以及其他所有的项目相关因素,是项目级别的配置文件。

在文件目录隐藏相应文件 
Setting -> Editor -> File Types  

image.png

添加以下 需要忽略的文件  然后 apply
.idea;*.iml;.gitignore;.mvn;mvnw;mvnw.cmd;

image.png

4:IDEA 热部署与监控 插件

1:JRebel 和 XRebel的作用
JRebel:修改完代码,不想重启服务,就使想代码生效。
XRebel:请求中,各个部分代码性能监控。例如:方法执行时间,出现的异常,SQL执行时间,输出的Log,MQ执行时间等。
2:安装JRebel 和 XRebel

image.png

3:JRebel的使用激活

image.png

1:使用 jrebel.qekang.com网址
    
2:通过该网址生成 UUID  https://www.guidgen.com/  

3:jrebel.qekang.com网址 拼上 UUID
https://jrebel.qekang.com/7b42efd0-6ecf-48be-809b-291774eeb84b

4:输入一个邮箱

image.png

4:JRebel的使用
使用JRebel启动服务,当修改了所启动服务的对应代码
JRebel会对服务进行热部署
JRebel: Reloading class 'com.example.security.demo.CookieDemo'.
JRebel: Reconfiguring bean 'cookieDemo' [com.example.security.demo.CookieDemo]

image.png

5: XRebel的激活
使用XRebel启动
点入http://localhost:8080/xrebel 跳转到对应的UI页面

image.png

使用邮箱注册:
注册完点进setting:
刷新页面

image.png

重新启动服务  XRebel显示已经进入试用期

image.png

6: XRebel的使用
点击闹钟按钮  查看花费时长

image.png

5:IDEA ( .iml错乱导致的各种问题)

0:问题总览 和 优先处理方案

问题:
    1:整个项目结构都没有了
    2:项目启动报错 
    3:代码修改后重新启动还是原来的代码

先尝试:把项目删了 重新再import 

image.png

image.png

1:整个项目结构都没有了

刷新一下maven

image.png

2:项目启动报错

找不到或无法加载主类    
执行单元测试 单元测试找不到

发现是启动时 连 target(存放.class的文件夹)都没有了
点击 maven - lifecycle - install
重新进行项目的打包编译

image.png

3:代码修改后重新启动还是原来的代码

方式一:箭号处打钩即可 
每次运行时都会重新执行maven - lifecycle - install命令
启动速度会变的特别慢

image.png

方法二:
使用网上方法 重新生成 .iml
在项目的路径下运行 idea terminal -> mvn idea:module

image.png

这个时候点开target(存放.class的文件夹)
\target\classes (java启动 .class)
\target\test-classes (单元测试 .class)

查看target里面相应的代码 发现 编译后的代码还是之前的代码

image.png

这个时候做一个修改
\target\classes 改为 \target\classes-other
\target\test-classes 改为 \target\test-classes-other

image.png

这个时候一切都变成正常了 
然后再把\target\classes  \target\test-classes 重新改回去就好

4:any changes made in its configuration may be loast after reimporting

修改上面图片中 \target\classes  \target\test-classes 是导致的的报黄
实际上会导致下图 language level的改动失效

image.png

any changes made in its configuration may be loast after reimporting
只要项目的配置发生改动(如pom.xml),上述设置就会失效 。(language level的改动)

由于pom的默认编译时的JDK版本是1.5   同时language level设置1.8已经失效
因此需要在项目的pom上加上maven处理JDK1.8

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>1.8</source>  <!--language level-->
                <target>1.8</target>  <!--java compiler version-->
            </configuration>
        </plugin>
    </plugins>
</build>