【Mac】SpringToolSuite4(STS)でパッケージが同一階層にまとめて表示されない

概要

事象

MacのSpringToolSuite4で「Package Explorer > Package Presentation > Hierarchical」を選択した際に、以下のように同一階層にまとめて表示されない場合がある。

> aaa
   > bbb ← 同一階層に"aaa.bbb"のようにまとめて表示してほしいが、別の階層として表示されてしまう
      > ccc
      > ddd
   .DS_Store ← STS上は表示されない

原因

表示するディレクトリに.DS_Storeファイルが生成されている。

対処

以下のコマンドで.DS_Storeファイルを削除する。

find . -name .DS_Store -print -delete

補足

SpringToolSuite4ではパッケージの表示形式としてHierarchicalとFlat の2つがあり、それぞれ以下のように表示される。

  • Hierarchical
> aaa.bbb  
  > ccc  
  > ddd
> aaa.bbb.ccc
> aaa.bbb.ddd

Hierarchical表示の場合、他にファイルがない場合は同一階層にパッケージがまとめて表示されるが、.DS_Storeファイルが存在する場合には別の階層として表示されてしまう。この状態だとパッケージの階層が深い場合に開きたいファイルを開く手間が増える。
一方でFlat表示にすれば同一階層に表示されるものの、パッケージの数が多い場合にやや見づらくなる。
どのタイミングで.DS_Storeファイルが生成されるのかは不明だが、このファイルを削除することで期待通りに表示される。

削除コマンドについて

findコマンドで、対象ディレクトリ以下の指定したファイルを再帰的に削除する。

find <target_directory> -name <file_name> -print -delete

-name:findする対象のファイル名を指定
-print:対象のファイルを表示
-delete:対象のファイルを削除