idea企业环境搭建

一 配置jdk

在"系统变量"中设置3项属性,JAVA HOME, PATH, CLASSPATH(大小写无所谓),若已存在则点击编辑,不存在则点击新建
变量名: JAVA HOME
变量值: C:/Java/jdk1.8.0 151 [注意]要根据自己的实际路径配置
变量名: CLASSPATH(idk1.8以前)
变量值: .;%JAVA_HOME%/lib/dt.jar; %JAVA HOME%/lib/tools.jar; [注意]前面有个.;
变量名: Path
变量值: %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin; [注意] PATH中的变量值为新增的,不要删掉原来有的值
检验 cmd后输入键入命令: java -version命令

二 安装idea,设置相应系统的bit (64-bit launcher)配置

在开发过程中,在一个类中对同一个类的方法或依赖包引用次数变多时,idea可能会将这个被引用的类或依赖包变为类似exampl.package.的格式,比如import org.springframework.web.bind.annotation., 这不符合代码规范。
导致这个的原因主要是idea中的一个属性设置,Settings-> Editor-> Code Style-> Java-> Imports,如下图,对图中的两个属性Class count to use import with "*和Names count to use static import with大设置为较大的数值即可
在这里插入图片描述

1) Maven配置

在安装好IDEA之后,需要在IDEA配置Maven仓库的相关信息,一般公司会提供maven settings文件模板,在本地新建settings.xml并把Mave源配置拷贝进去修改保存。
需要maven在settings并中存储加密密码(根据公司要求来定)
配置环境变量:

  • 在计算机-属性-高级系统设置环境变量中,在系统变量栏下单击新建,创建新的系统环境变量:
  • 新建-变量名"MAVEN_HOME’",变量值为“[IDEA安装路径] “\plugins\maven\lib\maven3”;如C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.2.2\plugins\maven\lib\maven3
  • 编辑path变量, 增加"%MAVEN HOME%\bin":
    在IDEA的File-> Settings -> Build,Execution,Deployment -> Build Tools -> Maven中,在User setting files 中配置maven的setting文件,如下图所示,点击0K或Apply即可完成IDEA中对Maven的配置。详细的Maven可参考: maven的相关资料。
    在这里插入图片描述

2)CheckStyle安装配置

安装CheckStyle插件
Checkstyle是Idea的用于检验代码开发规范的插件。
插件Checkstyle下载(一般公司会提供,自己电脑可以直接在插件中搜索安装
选择File-> Settings-Plugins,从本地安装插件(Install plugin from disk…),选择CheckStyle-IDEA-5.22.0ZiP.
安装后需重启IDEA,重启完成后可看下方出现CheckStyle模块。

●配置CheckStyle

checkstyle.xml(一般公司会提供"checkstyle.xml")
选择File -> Setting -> Other Settings -> Checkstyle ,选择工程/scripts/pipline/checkstyte.xml。
安装完毕之后需要配置Checktyle,以下是对配置的过程和配置属性的说明。

1.下图中检查范围选项分别为:仅java源文件(不含测试)、仅java源文件(包含测试)、所有源文件(不会测试)、所有源文件(包含测试、工程中所有文件。我们选择:仅java源文件(不含测试)。
在这里插入图片描述
2.输入如图所示,点击Next核对后,勾选Apply就可以使用checkstyle规则了。(以下是我用的,也可以参考后面自己改)


DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN""http://www.puppycrawl.com/dtds/configuration_1_3.dtd">


<module name="Checker"><property name="severity" value="error"/><property name="charset" value="UTF-8"/><module name="TreeWalker"><module name="JavadocMethod"><property name="suppressLoadErrors" value="true"/><property name="allowUndeclaredRTE" value="true"/><property name="allowMissingPropertyJavadoc" value="true"/><property name="allowMissingThrowsTags" value="true"/><property name="allowMissingParamTags" value="true"/>module><module name="JavadocVariable"/><module name="JavadocStyle"><property name="checkEmptyJavadoc" value="true"/><property name="checkFirstSentence" value="false"/><property name="checkHtml" value="false"/><message key="javadoc.missing" value="空白注释,请确保注释中文中至少留有一行纯中文功能描述注释"/>module><module name="JavadocType"><property name="scope" value="public"/><property name="allowMissingParamTags" value="true"/><property name="allowUnknownTags" value="true"/><property name="authorFormat" value="[\u4e00-\u9fa5]"/><message key="javadoc.missing" value="类注释:缺少Javadoc注释.或者作者格式没按照@author + 中文姓名来注释"/>module><module name="AnnotationUseStyle"><property name="elementStyle" value="ignore"/><property name="trailingArrayComma" value="ignore"/><property name="closingParens" value="ignore"/>module><module name="AvoidStarImport"><property name="severity" value="error"/><message key="import.avoidStar" value="请不要使用''.*''进行import - {0}."/>module><module name="NestedTryDepth"><property name="max" value="3"/>module><module name="SuperClone"/><module name="SuperFinalize"/><module name="DefaultComesLast"/><module name="StringLiteralEquality"><metadata name="net.sf.eclipsecs.core.comment" value="String比较请使用equals"/><property name="severity" value="error"/><message key="string.literal.equality" value="String比较请使用equals(),而不是''{0}''."/>module>module><module name="RegexpSingleline"><metadata name="net.sf.eclipsecs.core.comment" value="不允许使用System.out.print"/><property name="severity" value="error"/><property name="format" value="System\.out\.print"/><property name="message" value="不允许使用System.our.print,请使用log4j"/>module>
module>

在这里插入图片描述
根据自己的需求在此基础上修改


DOCTYPE module PUBLIC"-//Puppy Crawl//DTD Check Configuration 1.3//EN""http://www.puppycrawl.com/dtds/configuration_1_3.dtd"><module name="Checker"><module name="TreeWalker">  <module name="JavadocType">  <property name="authorFormat" value="\S"/>  <property name="scope" value="protected"/>  <property name="versionFormat" value="\$Revision.*\$"/>  <property name="excludeScope" value="public"/>  <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>  module>    <module name="JavadocMethod">    <property name="scope" value="private"/>    <property name="allowMissingParamTags" value="false"/>    <property name="allowMissingThrowsTags" value="false"/>    <property name="allowMissingReturnTag" value="false"/>    <property name="tokens" value="METHOD_DEF"/>    <property name="allowUndeclaredRTE" value="true"/>    <property name="allowThrowsTagsForSubclasses" value="true"/>      <property name="allowMissingPropertyJavadoc" value="true"/>  module>     <module name="JavadocVariable">  <property name="scope" value="private"/>  module>  <module name="AbstractClassName">       <property name="format" value="^Abstract.*$|^.*Factory$"/> module>  <module name="ConstantName">  <property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>  module>    <module name="LocalFinalVariableName">  <property name="format" value="^[A_Z][A-Z0-9]*(_[A_Z0-9]+)*$"/>  module>    <module name="LocalVariableName">  <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  module>    <module name="MemberName">  <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  <property name="applyToPublic" value="true"/>  <property name="applyToProtected" value="true"/>  <property name="applyToPackage" value="true"/>  <property name="applyToPrivate" value="true"/>  module> <module name="MethodName">  <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  module> <module name="PackageName">  <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>  module>   <module name="ParameterName">  <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  module> <module name="StaticVariableName">  <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  module>   <module name="TypeName">  <property name="format" value="^[A-Z][a-zA-Z0-9]*$"/>  <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>  module> <module name="AvoidStarImport">  <property name="excludes" value="java.io,java.util"/>  module> <module name="IllegalImport"/>   <module name="ImportOrder">  <property name="groups" value="java,javax"/>  <property name="ordered" value="true"/>  <property name="separated" value="true"/>  <property name="caseSensitive" value="true"/>  module> <module name="RedundantImport"/><module name="UnusedImports"/>  <module name="AnonInnerLength">  <property name="max" value="20"/>  module>   <module name="ExecutableStatementCount">  <property name="max" value="20"/>  <property name="tokens" value="CTOR_DEF,METHOD_DEF,STATIC_INIT,INSTANCE_INIT"/>  module>  <module name="FileLength">  <property name="max" value="1000"/>  module> <module name="LineLength">  <property name="max" value="80"/>  <property name="ignorePattern" value="^ *\* *[^ ]+$"/>  module>  <module name="MethodLength">  <property name="max" value="100"/>  <property name="countEmpty" value="true"/>  <property name="tokens" value="METHOD_DEF"/>  module>  <module name="ParameterNumber">  <property name="max" value="10"/>  <property name="tokens" value="METHOD_DEF,CTOR_DEF"/>  module> <module name="EmptyForInitializerPad">  <property name="option" value="space"/>  module> <module name="EmptyForIteratorPad">  <property name="option" value="space"/>  module>  <module name="NoWhitespaceAfter"/> <module name="NoWhitespaceBefore"/> <module name="OperatorWrap">  <property name="tokens"   value="ASSIGN, DIV, DIV_ASSIGN, PLUS_ASSIGN, MINUS, MINUS_ASSIGN, STAR, STAR_ASSIGN, MOD, MOD_ASSIGN, SR, SR_ASSIGN, BSR, BSR_ASSIGN, SL, SL_ASSIGN, BXOR, BXOR_ASSIGN, BOR, BOR_ASSIGN, BAND, BAND_ASSIGN,PLUS, QUESTION"/>  <property name="option" value="eol"/>  module>  <module name="MethodParamPad">  <property name="allowLineBreaks" value="false"/>  <property name="option" value="space"/>  <property name="tokens" value="METHOD_DEF,CTOR_DEF"/>  module> <module name="ParenPad">  <property name="option" value="nospace"/>  module> <module name="TypecastParenPad">  <property name="option" value="space"/>  module>  <module name="TabCharacter"/> <module name="WhitespaceAfter">  <property name="tokens" value="COMMA,SEMI,TYPECAST"/>  module>   <module name="WhitespaceAround">  <property name="tokens" value="ASSIGN"/>  module>  <module name="ModifierOrder"/> <module name="RedundantModifier">  <property name="tokens" value="METHOD_DEF,VARIABLE_DEF"/>  module> <module name="AvoidNestedBlocks">  <property name="allowInSwitchCase" value="true"/>  module><module name="EmptyBlock">  <property name="option" value="stmt"/>  module><module name="LeftCurly">  <property name="option" value="eol"/>  <property name="maxLineLength" value="80"/>  <property name="tokens" value="CLASS_DEF,INTERFACE_DEF,METHOD_DEF,CTOR_DEF"/>  module><module name="NeedBraces"/><module name="RightCurly">  <property name="option" value="alone"/>  <property name="tokens" value="LITERAL_TRY"/>  module>  <module name="AvoidInlineConditionals"/><module name="CovariantEquals"/> <module name="DefaultComesLast"/><module name="EmptyStatement"/><module name="EqualsHashCode"/><module name="ExplicitInitialization"/><module name="FallThrough"/><module name="FinalLocalVariable"/> <module name="HiddenField"/><module name="IllegalInstantiation"/><module name="IllegalCatch"/><module name="InnerAssignment"/><module name="MagicNumber"><property name="ignoreNumbers" value="0, 1"/><property name="ignoreAnnotation" value="true"/>module><module name="MissingSwitchDefault"/><module name="ModifiedControlVariable"/><module name="MultipleStringLiterals">  <property name="allowedDuplicates" value="3"/>  module><module name="MultipleVariableDeclarations"/><module name="NestedIfDepth">  <property name="max" value="1"/>  module><module name="NestedTryDepth">  <property name="max" value="3"/>  module><module name="PackageDeclaration"/><module name="ParameterAssignment"/><module name="RedundantThrows">  <property name="allowUnchecked" value="true"/>  <property name="allowSubclasses" value="true"/>  module><module name="RequireThis">  <property name="checkFields" value="false"/>  <property name="checkMethods" value="false"/>  module><module name="Regexp"><property name="format" value="System\.out\.println"/><property name="illegalPattern" value="true"/>module><module name="ReturnCount">  <property name="max" value="3"/>  module><module name="SimplifyBooleanExpression"/><module name="SimplifyBooleanReturn"/> <module name="StringLiteralEquality"/><module name="SuperClone"/> <module name="SuperFinalize"/><module name="ArrayTrailingComma"/><module name="UnnecessaryParentheses"/><module name="DesignForExtension"/><module name="FinalClass"/><module name="HideUtilityClassConstructor"/><module name="InterfaceIsType">  <property name="allowMarkerInterfaces" value="true"/>  module><module name="ThrowsCount">  <property name="max" value="7"/>  module><module name="VisibilityModifier">  <property name="packageAllowed" value="false"/>  <property name="protectedAllowed" value="false"/>  <property name="publicMemberPattern" value="^seriaVersionUID$"/>  module><module name="StrictDuplicateCode">  <property name="min" value="7"/>  <property name="charset" value="UTF-8"/>  module> <module name="BooleanExpressionComplexity">  <property name="max" value="7"/>  module><module name="ClassDataAbstractionCoupling">  <property name="max" value="7"/>  module><module name="CyclomaticComplexity">  <property name="severity" value="ignore"/>  module><module name="ArrayTypeStyle">  <property name="javaStyle" value="true"/>  module><module name="FinalParameters"/><module name="Indentation">  <property name="basicOffset" value="4"/>  <property name="braceAdjustment" value="0"/>  <property name="caseIndent" value="4"/>  module><module name="NewlineAtEndOfFile"/><module name="Translation">  <property name="severity" value="info"/>  module><module name="UncommentedMain">  <property name="excludedClasses" value="^$"/>  module><module name="UpperEll"/>module>module>

3.配置完成后,在IDEA下方的CheckStyle模块可以看到对代码规范的检查结果。下图为示例检查结果。

3) Lombok插件安装

Lombok是一个java实用工具, 可以帮助开发人员消除java的冗长,例如使用GCetter可以让代码在编译时自动生etter方法。为了使idea不在代码检测时报错,需要安装对应播件。
Lombok的下载
注意:如果Idea版本使用的是2020版的,则需要下载对应版本的Lombok插件:
Lombok的下载
选择File -> Setting -> Plugins,从本地安装插件,选择lombok plugin-0.19-2018.EAP-mercurylog1.0.zip。
激活
安装后需重启IDEA,重启完成后可以在使用lombok组件时不出现代码检测错误。

在配置好Lombok之后,需要在工程中导入maven,才能在开发中使用ombok的注解。这里是在工程的pom.xml文件中的lombok依赖。
需要导入相应的依赖

        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

4) SonarLint插件安装

Sonar是款代码质量管理 工具,SonarLint是Sonar的插件名称。
支持版本: 2016.3.8
SonarLint插件下载
安装
点击File-> Settings。

  • 在弹出框内左侧点击Plugins, 点击右侧齿轮按钮,选择Install Plugin from Disk.
    安装后需重启IDEA
    本地使用
  • 点击View-SonarLint,添加SonarLint面板
    -

点击绿色执行按钮,可分析当前选定文件。在项目上右键SonarLint-Analyzewith
SonarLint可分析整个项目。
点击File-Settings,打开设置面板,在OtherSettings中选中,SonarLintGeneralSettings. 勾选Automatically trigger analysis即可自动扫描。
Tools->SonarLInt
在这里插入图片描述
需要手动分析,可右击项目或文件,点击SonarLint-Analyze
在这里插入图片描述
分析结果中的问题,可跳转至具体代码行,右侧可查看具体规则。
在这里插入图片描述
服务器配置
在SonarLint面板,点击工具按钮,可对项目进行配置,也可通过File-Settings, Other Settings-SonarLint Project Settings对SonarQube服务器进行配置。
●. 勾选Enable binding to remote SonarQube Server, 点击Configure servers. 对服务器进行具体配置。
在这里插入图片描述
点击加号,在弹出的对话框中输入配置名称,选择右侧SonarQube, 输入服务器地址例如:http://127.0.0.1:8080 (针对新项目)。
在这里插入图片描述
(next)下一步
●登陆方式选择账户密码式(一般公司会提供)
配置完成后,在Bind to server中选择刚才配置的服务器,在下方的SonarQube Project中输入想要关联的工程,点击Search in ls查找,关联即可。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部