intellij 협업 세팅
intellij로 만든 자바프로젝트 협업 세팅
📜 제목으로 보기
- 인텔리제이 세팅
인텔리제이 세팅
buildType & assertj라이브러리
build Type: gradle -> intellij
-
gradle
검색후 build and runintellij
로 바꿔주기- 빌드 속도 및 TestName표기
- new projects에서 세팅
안됨
build.gradle 라이브러리에 assertj 추가 및 refresh
-
build.gradle
의 dependency에 assertj 라이브러리 넣어주고 refresh 하기// Assertions testImplementation 'org.assertj:assertj-core:3.22.0' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.4.2' // lombok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'
-
Ctrl+Shift+O
또는 우측상단에 떠있을코끼리버튼
을 클릭해줘야 반영이 된다.- 단축키는 keymap에서 덮어써줘야 작동됨.
gradle 정상 test
-
shift 2번
orf1
->gradle task선택
-
gradle clean
수행 -
gradle test
수행
-
[Test 설정] live template에 assert문 추가해놓기
-
@Test
대신@ParameterizedTest
for 여러case 를 쓰기 위해서 아래 의존성을 추가해야한다.// Assertions testImplementation 'org.assertj:assertj-core:3.22.0' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.4.2'
-
as+all
assertAll( () -> assertThat(actual).isEqualTo(expected$END$), () -> assertThat(actual).hasSize() );
-
as+that
Assertions.assertThat(actaul).isEqualTo(expected$END$);
-
as+notthr
Assertions.assertDoesNotThrow(() -> $WHEN$)
-
as+thr
Assertions.assertThatThrownBy(() -> $WHEN$) .isInstanceOf($EXCEPTION$.class) .hasMessage("$MESSAGE$");
-
given
: option에 있는reformat ~ style
체크할 것//given //when $END$ //then
-
methodSource
: option에 있는reformat ~ style
체크할 것return Stream.of( Arguments.of($END$), Arguments.of() );
-
dynamicTest
:@DisplayName("큰테스트이름") @TestFactory Stream<DynamicTest> collectionsOfDynamicTest() { return Stream.of( dynamicTest("테스트케이스1", () -> { // given // when $END$ // then assertThat(actual).isEqualTo(expected); }), dynamicTest("테스트케이스2", () -> { // given // when // then assertThat(actual).isEqualTo(expected); }) ); }
ends with a line break
-
Editor >
General
> on Save 탭 >ends with a line break에서 해당 박스를 체크
한다.
Code style(우테코)
-
우테코javastyleXML, naverConventionXML 다운로드
- 프로젝트폴더 최상단에 넣어준다.
-
Editor >
code style
> Scheme > 톱니바퀴 > Import Scheme > Intellij IDEA XML-
intellij-java-wooteco-style.xml
선택해주기
-
SQL warning 워닝 제거
-
Warning 검출 끄기
- DAO 등의 sql 작성문으로 가서
ctrl + .
>Uninject language or reference
를 선택한다.
- DAO 등의 sql 작성문으로 가서
-
프로젝트 SQL dialect 설정하기 for 자동완성 by 해당SQL로 인식후
문법 자동완성
-
Settings - Languages & Frameworks - SQL Dialects
orshift 2번(F1) > sql dialects
선택 - Global 말고
Project SQL dialect
를 테스트용H2
로 선택
-
-
schema.sql에서 H2를 DataSource로 지정하여 session에서 테이블들 생성 for String sql속
table 및 칼럼 인식후 자동완성
- 의존성에 h2추가 확인하기
runtimeOnly 'com.h2database:h2'
-
application.yml
에서 h2인메모리(mem)
url(url: jbdc:h2:mem
:maindb)으로 지정 / username 등 설정 확인 후 `펼쳐놓기 -
scheme.sql파일에서
configure data source
클릭 orshift 2번(F1)
에서 data source검색하여Data source...
선택-
Data source from url
에 application.yml의 url을 복붙해서 설정도 가능하다고 한다.
-
-
h2를 추가하고, 기본 remote로 지정된
option을 내장형(In-memory)
로 변경하고, username(sa), database(maindb) 등 입력해준다. -
schema.sql로 와서
실행
버튼 > 생성한 data source DB설정 >schema.sql 선택후 실행
시켜data source에 session으로 메모리 테이블 실제 생성
시켜준다. -
이제 dao등에서
table을 인식하여 칼럼까지 자동완성
할 수 있다. - 연결이 끊기면
schema.sql
->ctrl+shift+F10
(run) -> target data source 설정해서 연결해주면 된다.
- 의존성에 h2추가 확인하기
시작시 최근 프로젝트 reopen 해제
- settings > appearance & behavior >
system settings
> [ ] reopen projects on startup 체크해제
1회성 설정
New Project setup
-
File >
New Projects Setup
>Settings for New projects
>
Save Actions (개행+imort최적화)
-
Plugins > market > save actions
를 검색해서 설치한다.import최적화(삭제) + 리포맷팅 자동
file Encoding
- 3가지 전부
UTF-8
확인
tab (4space)
- **Editor >
Code style
> java >tabs and indents
> **[ ] Use tab character 체크해제
Continuation indent 8->4
- OS마다 tab의 크기가 다르므로 space를 사용하게
tab사용 체크해제
하는 것
File and Code Templates > method body template
-
베루스 추천
-
settings >
File and Code Templates
>code
탭에서-
implemented
+new
Method Body부분에Overriden
##if ( $RETURN_TYPE != "void" )return $DEFAULT_RETURN_VALUE;#end throw new UnsupportedOperationException("${SIMPLE_CLASS_NAME}#${METHOD_NAME} not implemented."); throw new UnsupportedOperationException("${SIMPLE_CLASS_NAME}#${METHOD_NAME} not write.");
## 오버라이딩은 그냥 쓴다. 부모의 것 상속 받을 때인데, super() 등 메서드 그대로 호출시켜줘야함. ##throw new UnsupportedOperationException("${SIMPLE_CLASS_NAME}#${METHOD_NAME} not override.");
-
-
Editor > general >
auto import
검색 후- Always ->
Ask
로 변경(복붙후 library 선택) -
Add unambiguous import on the fly 체크
-
Optimize imports on the fly (for current project) 체크
- Always ->
parameter name hints
- Editor > general >
code completoin
검색 후 > Parameter Info 탭 > [x] show parameter name hints on completion 체크
usages 표기
- preferences - editor - inlay hints - java -
code vision
- usages 2가지체크
go to test
- keymap >
go to test
검색 후 단축키 지정 :ctrl+shift+ T
-> 나머지remove
- 테스트 없으면 생성, 있으면 이동 시켜주게 된다.
lombok 라이브러리 이후 @anno적용 안될 때
- lombok 라이브러리를 추가한 후
- Settings > Build > Compiler > Annotation Processors 에서 [x]
Enable annotation processing
을 체크해야 롬복을 사용할 수 있다.(안될 경우)
- Settings > Build > Compiler > Annotation Processors 에서 [x]
final 및 private
method의 파라미터 앞에 final
-
Editor >
Code style
> java > Code generation > [x]make ~ final
체크박스 2개
변수 추출시 final (최초 1회)
- 추출할 때,
ctrl + alt + v
를 **2번 눌러서, **-
Declare final
체크
-
(private) 상수를 private로 추출(최초 1회)
- 추출할 때,
ctrl + alt + c
를 **2번 눌러서, **- public -> private로 옮겨놓기
[TEST 설정] Test Method template 수정하기
-
Editor >file and code templates
검색 >Code
탭 > JUnit Test Method에 아래 코드 추가-
@org.junit.jupiter.api.DisplayName("")
- 2번 한글메서드로 작성하기 위해 주석처리로 추가됨.
-
-
Editor >
file and code templates
검색 >Code
탭 > JUnit Test Class에서 class위에 아래 코드 추가@SuppressWarnings("NonAsciiCharacters")
-
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
파라미터 힌트 항상 보이게 하기
- settings >
Parameter hint
검색 > Editor > Inlay Hints > Java > Parameter hints >-
Paramters with names ~
체크
-
keymap 추출하고 사용하기
-
F1(search everywhere)
에서export settings
를 검색한다 -
Select None
을 한번 누르고keymaps(schemes)
만 선택 한 뒤, 저장경로에서settings.zip
에 날짜기입까지 해주고OK
로 export한다.-
사용시에는 반대로
F1 > import settings
를 검색한 뒤, zip을 선택만 해주면 된다. -
까보면, plugins까지 다 포함되어있다.
-
Font
- editor > font > jetbrain Mono -> fira code + ligature 허용
한글 워닝 제거
- Editor >
inspections
>non-ascii
검색 > 체크해제
링크)
페어 컨벤션(- 구글 스프레트 시트 링크로 매번 업데이트 된 것 활용하기
.editorConfig for windows에서도 LF로 저장
-
다양한 에디터들에게 공통적인 코드컨벤션을 적용시킨다.
- 적용시
windows에서도 LF로 저장
되게 한다.
- 적용시
-
루트에서
NEW > EditorConfig 검색
후 생성한다. -
아래 내용을 복붙한다.
# top-most EditorConfig file root = true [*] # [encoding-utf8] charset = utf-8 # [newline-lf] end_of_line = lf # [newline-eof] insert_final_newline = true [*.bat] end_of_line = crlf [*.java] # [indentation-tab] indent_style = tab # [4-spaces-tab] indent_size = 4 tab_width = 4 # [no-trailing-spaces] trim_trailing_whitespace = true [line-length-120] max_line_length = 120
checkstyle
-
일단 LF로 push하기 위한 git 전역설정이 되어있어야한다.
-
윈도우에서는 git commit시 CRLF로 새줄을 저장하지만, 위 설정을 통해 push시에는 LF로 올라가게 한다.
- Git은
커밋
할 때 자동으로CRLF를 LF로 변환
해주고 - windows로 clone하면 다시
LF가 CRLF
가 됨
git config --global core.autocrlf true
- Git은
-
-
없다면 플러그인
Plugins 에서 CheckStyle-IDEA검색 후
부터 설치한다.- CheckStyle-IDEA 설치
- 프로젝트 최상단에
naver-checkstyle-rules.xml
를 위치시키고 - Tools >
Checkstyle
에서- 버전을 8.24 이상으로,
- Scan Scope를
All sources(including tests)
로 맞추고 - 테스트 한글함수를 위해서 tests 포함안해도 될 듯? -
+
를 눌러, 위에서편집해준 naver-checkstyle-rule
를 추가해준다. - naver-checkstyle-rule을 선택해준다.
네이버핵데이 컨벤션 및 CheckStyle 적용하기
-
요약
- Settings > Editor > Code style > Java > Scheme > 톱니바퀴 > import Scheme > (ideaProject폴더에 다운받아놓은 )InteliJ ~ .xml 파일 찾아 적용
-
cf) code style> java에서 use tab character를 풀어야 4스페이스가 된다.Tab 사용하도록 체크
하자.
-
-
파일을 저장 할 때마다 포멧터 자동 적용설정 by
Save Actions plugin
을 활용하면 파일을 저장하는 순간 포멧터를 자동 적용할 수 있다.-
File
>Settings
(Ctrl + Alt + S
) >Plugins
메뉴로 이동 -
Marketplace
탭에서 ‘Save Actions’ 로 검색 -
Save Actions' plugin의 상세 설명 화면에서
[Install]` 버튼 클릭 - IntelliJ를 재시작
-
File
>Settings
>Other Settions
>Save Actions
메뉴로 이동 -
아래 항목을 체크
Activate save actions on save
Optimize imoprts
Refomat file
-
- 플러그인 CheckStyle-IDEA 플러그인을 검색 후 설치
Tools > CheckStyle
에서Checkstyle version
을 8.24 이상,Scan Scope
를All sources (including tests)
로 설정Configuration file
에 다운받고 수정한 XML 파일(ideaProject폴더에 다운받아놓은 naver~checkstyle rule.xml)을 추가- 하단에 checkstyle 창(단축키 직접지정
alt+shift+k
)로 코드짜고 확인하기
- Settings > Editor > Code style > Java > Scheme > 톱니바퀴 > import Scheme > (ideaProject폴더에 다운받아놓은 )InteliJ ~ .xml 파일 찾아 적용
- intellij용 xml파일 다운로드
- 설치가이드
- https://naver.github.io/hackday-conventions-java/#intellij-formatter
- 나는 지금 플러그인 : google-java-format> android 버전을쓰고있는데.. 취소시킴
-
checkStyle적용하기
-
CheckStyle은 Java 코드를 작성 할 때 규칙(이 경우 코딩 컨벤션)들을 선언해두고 이를 어길 시 에러 또는 경고를 뿜어내어 개발자로 하여금 컨벤션을 강제로 지킬 수 있도록 도와주는 코딩 컨벤션 검사 도구다. 네이버 핵데이 Java 코딩 컨벤션을 적용할 시 다음을 제외한 나머지들에 대한 컨벤션을 검사할 수 있다.
-
적용방법
-
Naver CheckStyle Rules XML 파일을 다운받는다.
나는 프로젝트 최상단($rootDir
)에 이를 추가했다.- 내문서 >
IdeaProjects
폴더에 저장함.
- 내문서 >
-
우선 나는 다른 규칙을 덮어쓸 생각이 없어서 여기를 참고하여 XML 파일에서 다음을 삭제했다. 이를 삭제하지 않으면 다음 단계에서
suppressionFile
변수에 파일을 할당해야한다.<module name="SuppressionFilter"> <property name="file" value="${suppressionFile}"/> <property name="optional" value="false"/> </module>
-
-
ide에 적용하기
File > Settings > Plugins
메뉴에서 CheckStyle-IDEA 플러그인을 검색 후 설치한다.Tools > CheckStyle
에서Checkstyle version
을 8.24 이상,Scan Scope
를All sources (including tests)
로 설정한 후Configuration file
에 다운받고 수정한 XML 파일을 추가하자- 이제 우리가 설정한 코딩 컨벤션을 어기는 코드를 작성하면 다음과 같이 경고 표시가 나타난다.
-