diff --git a/project.clj b/project.clj
index cd653c89fa08682c1457c11fe42d8f0b4c3c5092..b660239288e4621a9c4a60c857a2256db205d530 100644
--- a/project.clj
+++ b/project.clj
@@ -117,28 +117,26 @@
   :main ^:skip-aot metabase.core
 
   ;; TODO - WHAT DOES THIS DO?
-  :manifest {"Liquibase-Package"
-             #= (eval
-                 (str "liquibase.change,liquibase.changelog,liquibase.database,liquibase.parser,liquibase.precondition,"
-                      "liquibase.datatype,liquibase.serializer,liquibase.sqlgenerator,liquibase.executor,"
-                      "liquibase.snapshot,liquibase.logging,liquibase.diff,liquibase.structure,"
-                      "liquibase.structurecompare,liquibase.lockservice,liquibase.sdk,liquibase.ext"))}
-
-  :target-path "target/%s"
+  :manifest
+  {"Liquibase-Package"
+   #=(eval
+      (str "liquibase.change,liquibase.changelog,liquibase.database,liquibase.parser,liquibase.precondition,"
+           "liquibase.datatype,liquibase.serializer,liquibase.sqlgenerator,liquibase.executor,"
+           "liquibase.snapshot,liquibase.logging,liquibase.diff,liquibase.structure,"
+           "liquibase.structurecompare,liquibase.lockservice,liquibase.sdk,liquibase.ext"))}
 
   :jvm-opts
   ["-XX:+IgnoreUnrecognizedVMOptions"                                 ; ignore things not recognized for our Java version instead of refusing to start
    "-Xverify:none"                                                    ; disable bytecode verification when running in dev so it starts slightly faster
    "-Djava.awt.headless=true"]                                        ; prevent Java icon from randomly popping up in dock when running `lein ring server`
 
-  :javac-options ["-target" "1.8", "-source" "1.8"]
-  :uberjar-name "metabase.jar"
+  :target-path "target/%s"
 
-  :ring
-  {:handler      metabase.core/app
-   :init         metabase.core/init!
-   :destroy      metabase.core/destroy
-   :reload-paths ["src"]}
+  :javac-options
+  ["-target" "1.8", "-source" "1.8"]
+
+  :uberjar-name
+  "metabase.jar"
 
   :profiles
   {:dev
@@ -148,13 +146,7 @@
      [ring/ring-mock "0.3.2"]]
 
     :plugins
-    [[docstring-checker "1.0.3"]                                      ; Check that all public vars have docstrings. Run with 'lein docstring-checker'
-     [jonase/eastwood "0.3.1"
-      :exclusions [org.clojure/clojure]]                              ; Linting
-     [lein-bikeshed "0.4.1"]                                          ; Linting
-     [lein-check-namespace-decls "1.0.1"]                             ; lints namespace declarations
-     [lein-environ "1.1.0"]                                           ; easy access to environment variables
-     [lein-expectations "0.0.8"]]                                     ; run unit tests with 'lein expectations'
+    [[lein-environ "1.1.0"]]                                          ; easy access to environment variables
 
     :env      {:mb-run-mode "dev"}
     :jvm-opts ["-Dlogfile.path=target/log"]
@@ -179,10 +171,17 @@
    :run
    [:exclude-tests {}]
 
+   ;; start the HTTP server with 'lein ring server'
    :ring
    [:exclude-tests
-    {:dependencies
-     [[lein-ring "0.12.5" :exclusions [org.clojure/clojure]]]}]       ; start the HTTP server with 'lein ring server'
+    {:plugins
+     [[lein-ring "0.12.5" :exclusions [org.clojure/clojure]]]
+
+     :ring
+     {:handler      metabase.core/app
+      :init         metabase.core/init!
+      :destroy      metabase.core/destroy
+      :reload-paths ["src"]}}]
 
    :with-include-drivers-middleware
    {:plugins
@@ -193,7 +192,11 @@
 
    :expectations
    [:with-include-drivers-middleware
-    {:injections
+    {:plugins
+     [[lein-expectations "0.0.8"
+       :exclusions [expectations]]]
+
+     :injections
      [(require 'metabase.test-setup                                   ; for test setup stuff
                'metabase.test.util)]                                  ; for the toucan.util.test default values for temp models
 
@@ -221,19 +224,27 @@
    [:include-all-drivers]
 
    :bikeshed
-   [:include-all-drivers]
+   [:include-all-drivers
+    {:plugins [[lein-bikeshed "0.4.1"]]}]
 
    :eastwood
    [:include-all-drivers
-    {:eastwood
+    {:plugins
+     [[jonase/eastwood "0.3.1" :exclusions [org.clojure/clojure]]]
+
+     :eastwood
      {:exclude-namespaces [:test-paths]
       :config-files       ["./test_resources/eastwood-config.clj"]
       :add-linters        [:unused-private-vars
                            :unused-namespaces
-                           ;; These linters are pretty useful but give a few false positives and can't be selectively disabled (yet)
+                           ;; These linters are pretty useful but give a few false positives and can't be selectively
+                           ;; disabled (yet)
+                           ;;
                            ;; For example see https://github.com/jonase/eastwood/issues/193
-                           ;; It's still useful to re-enable them and run them every once in a while because they catch a lot of actual errors too. Keep an eye on the issue above
-                           ;; and re-enable them if we can get them to work
+                           ;
+                           ;; It's still useful to re-enable them and run them every once in a while because they catch
+                           ;; a lot of actual errors too. Keep an eye on the issue above and re-enable them if we can
+                           ;; get them to work
                            #_:unused-fn-args
                            #_:unused-locals]
       ;; Turn this off temporarily until we finish removing self-deprecated functions & macros
@@ -244,16 +255,21 @@
    [:include-all-drivers
     {:global-vars {*warn-on-reflection* true}}]
 
+   ;; Check that all public vars have docstrings. Run with 'lein docstring-checker'
    :docstring-checker
    [:include-all-drivers
-    {:docstring-checker
+    {:plugins
+     [[docstring-checker "1.0.3"]]
+
+     :docstring-checker
      {:include [#"^metabase"]
       :exclude [#"test"
                 #"^metabase\.http-client$"]}}]
 
    :check-namespace-decls
    [:include-all-drivers
-    {:source-paths          ["test"]
+    {:plugins               [[lein-check-namespace-decls "1.0.2"]]
+     :source-paths          ["test"]
      :check-namespace-decls {:prefix-rewriting true}}]
 
    ;; build the uberjar with `lein uberjar`