   Ensures the project structure for the given project exists.
 
   In case it does exist, it is a no-op. Otherwise, it is built.
+
+  `opts` are the same options that can be passed to `build_structure/2`.
   """
   @spec ensure_structure(keyword, keyword) :: :ok
   def ensure_structure(config \\ config(), opts \\ []) do

          Path.join([build_path(config), "lib", Atom.to_string(app)])

        config[:apps_path] ->
          raise "trying to access Mix.Project.app_path for an umbrella project but umbrellas have no app"

        true ->
          Mix.raise(


  """
  @spec deps_paths(keyword) :: %{optional(atom) => Path.t()}
  def deps_paths(opts \\ []) when is_list(opts) do
    traverse_deps(opts, fn %{opts: opts} -> opts[:dest] end)
  end

