Yes this is normal, this is the default behavior. You can change it by excluding some folders (see the doc available here : https://github.com/mpeltonen/sbt-idea at Exclude some folders)
So what is the difference between .idea and .idea_modules?
.idea_module generates an IDEA module while .idea generates an IDEA project.
In short a project can be multi-module or single-module and also contains IntelliJ libraries.
In longer version from the doc (http://confluence.jetbrains.com/display/IDEADEV/Structure+of+IntelliJ+IDEA+Project)
In IntelliJ IDEA, a project encapsulates all your source code, libraries, build instructions into a single organizational unit. Everything you do in IntelliJ IDEA, is done within the context of a project. A project defines some collections referred to as modules and libraries. Depending on the logical and functional requirements to the project, you can create a single-module or a multi-module project.
A module is a discrete unit of functionality that can be run, tested, and debugged independently. Modules includes such things as source code, build scripts, unit tests, deployment descriptors, etc. In the project, each module can use a specific SDK or inherit SDK defined on the project level (see the SDK section later in this document). A module can depend on other modules of the project.
Yes, it is ok for that SBT plugin for IDEA.
Usually IDEA project consists of top-level
.idea directory (which contains configuration common to the project) and several
*.iml files, one for each module in the project (module-specific configuration, like facets, excluded directories, custom dependencies). These files are usually located in the top-level directories of corresponding modules.
On the other hand, SBT plugin does something unusual. It creates standard
.idea directory, but it stores all project modules in one location, namely
.idea_modules directory in the top-level directory of the project. This is fully supported by IDEA project structure, which is a set of XMLs after all.
project directory/module, it is a standard feature of SBT builds. It contains your build configuration. See SBT manual on this.
The foregoing was about SBT plugin which is currently present in plugins repo. There is an official SBT plugin in active development which keeps familiar modules structure (no
.idea_modules directory) and has higher integration with SBT. The latter is most prominent in dependency management - official plugin extracts dependencies, even unmanaged, and makes them available for the IDE; current SBT plugin cannot do that.
- Sbt's gen-idea always creates two IntelliJ projects
- Why is IntelliJ IDEA building a larger jar file for two projects with exactly the same contents?
- IntelliJ "SBT project import" that creates two modules
- IntelliJ IDEA 2020.3 Scala plugin isn't working with new projects
- Intellij idea choose implementation of class/trait action shows two times more results
- Problems compiling and running Scala projects in IntelliJ Idea
- Showing JavaDoc/ScalaDoc for Maven/Sbt managed projects in IntelliJ IDEA
- How to force IntelliJ IDEA to reload dependencies from build.sbt after they changed?
- IntelliJ Idea 12 + Android + Scala nowadays
- How to use Scala in IntelliJ IDEA (or: why is it so difficult to get a working IDE for Scala)?
- IntelliJ IDEA consuming lots of CPU
- What is the purpose of `scala-2.11` folder in IntelliJ IDEA
- Module SDK for Scala in IntelliJ Idea
- Is it possible in Intellij IDEA Scala plugin to know which implicit conversion was applied?
- IntelliJ IDEA - sbt plugin - 'Expression type Def.Setting[...] must conform DslEntry in sbt file'
- How to add Jar libraries to an IntelliJ Idea SBT Scala project?
- How do I change intellij idea to compile with scala 2.11?
- Scala Compiler not found in Intellij IDEA 11 with Play 2.0 project
- IntelliJ IDEA 13: new Scala SBT project hasn't src directory structure generated
- IntelliJ Idea sbt managed source file
- How to run scala code on Intellij Idea 11?
- How to debug/run a single gatling simulation in IntelliJ IDEA without sbt command?
- Intellij IDEA java.lang.NoSuchMethodError: scala.collection.immutable.$colon$colon.hd$1()Ljava/lang/Object
- Changing Ivy Cache Location for sbt projects in IntelliJ IDEA?
- Intellij Idea setup for Scala, clarification needed
- How to debug a scala based Spark program on Intellij IDEA
- How keep intellij idea index between restarts?
- IntelliJ IDEA Hotkey for comment does not work with Scala
- Intellij IDEA and SBT syntax error
- How to get rid of scalac ServerException with IntelliJ Idea
More Query from same tag
- How can I tell sbt to exclude files from the WAR but allow them to be loaded by container:start?
- reduceByKey method not being found in IntelliJ
- Why isn't .withSession in scope but it works fine when a trait?
- Use singletons in akka scala actor
- Spark 2.0.0 - No FileSystem for scheme: null error in IntelliJ SBT project
- how to get ClassTag[Long] from 10L
- Reading from postgres using Akka Streams 2.4.2 and Slick 3.0
- When to use the equals sign in a Scala method declaration?
- Return type with typeclass but no other type info
- How to cast a variable to certain runtime type got from TypeCast in Scala
- Scala Java interoperability with val
- Scala: Inspect bytecode on JVM 1.7 from SBT or Eclipse Scala IDE
- Skip first and last line from a pipe delimited file with 26 columns and make it to dataframe using scala
- Converting Java to Scala
- padTo error inside a foldLeft
- Scala: overflow despite use of Long when adding
- Why the first base class in parent list must be non-trait class?
- How do I check in shapeless if a type is a member of an HList?
- stringbuilder characters find
- Scala: What is the difference between filter and takeWhile on a stream?
- Akka Streams' ActorPublisher as a Source for web response - how back-pressure works
- Any advantages in putting code in build.scala over build.sbt?
- How do I create a set of ngrams in Spark?
- Combine two rdds
- Building a spark streaming sample app
- Spark application got the error of "Task not serializable"?
- How to modify a value of a Map which contains Sets, returning a new Map?
- Timeout for AngularJs promises and Play! actions
- Function to return specific trait subclass depending on parameter's type
- Main Arguments For or Against Using JVM