mylisp/maven.el
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 16 Jun 2021 12:50:08 +0300
changeset 1734 ae2c6a001464
parent 1666 06937ff1ec5f
permissions -rw-r--r--
Add some standard places to PATH if they are not set by login script. Rearrange the order of paths so system's are first, user's are last. For Cygwin this helps with Cygwin's paths to be situated before "C:/Windows" (Emacs is not started from a login shell on Windows!).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1508
fad1a57bf25f Move maven handling logic from maven-central.el to separate file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1302
diff changeset
     1
;;; maven.el --- Maven build project helpers.
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
;;; Commentary:
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
;;
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
;;; Code:
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
     8
(defvar maven-command "mvn")
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    10
(defvar maven/help-buffer-name "*Maven Help*")
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    12
(defun maven/parse-pom-dependency-in-region (start end)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
  (let (groupId artifactId version)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
    (save-restriction
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
      (narrow-to-region start end)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
      (goto-char start)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
      (re-search-forward "<groupId>\\([^<]*\\)</groupId>" nil t)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
      (setq groupId (match-string-no-properties 1))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
      (goto-char start)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
      (re-search-forward "<artifactId>\\([^<]*\\)</artifactId>" nil t)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
      (setq artifactId (match-string-no-properties 1))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
      (goto-char start)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
      (re-search-forward "<version>\\([^<]*\\)</version>" nil t)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
      (setq version (match-string-no-properties 1))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
      (list groupId artifactId version)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
      )))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    28
(defun maven/parse-pom-dependency (&optional point)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
  (let (start end pos groupId artifactId version fs-o bs-o fs-c bs-c)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
    (save-excursion
1512
59816a0cca92 Prefer look ahead. Fix typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1511
diff changeset
    31
      (if (looking-at "[^>]*<[^!]")
59816a0cca92 Prefer look ahead. Fix typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1511
diff changeset
    32
          (progn (search-forward "<") (backward-char))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
        (search-backward "<"))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
      (setq point (point))
1510
96a2dcb07960 Remove magic numbers.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1508
diff changeset
    35
      (when (re-search-forward "<\\(?:plugin\\|dependency\\)>" nil t)
1512
59816a0cca92 Prefer look ahead. Fix typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1511
diff changeset
    36
        (setq fs-o (re-search-backward "<" nil t)))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
      (goto-char point)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
      (setq bs-o (re-search-backward "<\\(?:plugin\\|dependency\\)>" nil t))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
      (goto-char point)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
      (setq fs-c (re-search-forward "</\\(?:plugin\\|dependency\\)>" nil t))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
      (goto-char point)
1510
96a2dcb07960 Remove magic numbers.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1508
diff changeset
    42
      (when (re-search-backward "</\\(?:plugin\\|dependency\\)>" nil t)
1512
59816a0cca92 Prefer look ahead. Fix typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1511
diff changeset
    43
        (setq bs-c (re-search-forward ">" nil t)))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
      (cond
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
       ((and fs-o (= fs-o point) fs-c)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    46
        (maven/parse-pom-dependency-in-region fs-o fs-c))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
       ((and bs-o (<= bs-o point) fs-c (<= point fs-c))
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    48
        (maven/parse-pom-dependency-in-region bs-o fs-c))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
       ((and fs-o fs-c)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    50
        (maven/parse-pom-dependency-in-region fs-o fs-c))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
       ((and bs-o bs-c)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    52
        (maven/parse-pom-dependency-in-region bs-o bs-c))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
       (t
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
        (list nil nil nil)))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
      )))
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    56
;; (pp (maven/parse-pom-dependency))
1108
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    57
1160
159ad9e8fe53 Fix: maven.help not available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1152
diff changeset
    58
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    59
(defun maven-help ()
1108
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    60
  "Run help:describe for plugin at point."
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    61
  (interactive)
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    62
  (let (dependency groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    63
    (setq dependency (maven/parse-pom-dependency))
1108
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    64
    (setq groupId (elt dependency 0))
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    65
    (setq artifactId (elt dependency 1))
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    66
    (if (not (and groupId artifactId))
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    67
        (message "Can't find `groupId' or `artifactId'")
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    68
      (shell-command
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    69
       (format "%s help:describe -Ddetail -DgroupId=%s -DartifactId=%s" maven-command groupId artifactId)
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    70
       (switch-to-buffer maven/help-buffer-name)) )
1108
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    71
    ))
8e730890ac85 maven.help - Run help:describe for plugin at point.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1091
diff changeset
    72
1302
82d6e8bd0861 Mark useful functions as autoload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1259
diff changeset
    73
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    74
(defun maven-effective-pom ()
1109
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    75
  "Run help:effective-pom for plugin at point."
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    76
  (interactive)
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    77
  (shell-command
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    78
   (format "%s help:effective-pom" maven-command)
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    79
   (switch-to-buffer maven/help-buffer-name)) )
1109
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    80
1302
82d6e8bd0861 Mark useful functions as autoload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1259
diff changeset
    81
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    82
(defun maven-effective-settings ()
1109
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    83
  "Run help:effective-settings for plugin at point."
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    84
  (interactive)
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    85
  (shell-command
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    86
   (format "%s help:effective-settings" maven-command)
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    87
   (switch-to-buffer maven/help-buffer-name)) )
1109
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    88
1302
82d6e8bd0861 Mark useful functions as autoload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1259
diff changeset
    89
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    90
(defun maven-dependency-tree ()
1109
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    91
  "Run dependency:tree for plugin at point."
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    92
  (interactive)
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    93
  (shell-command
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    94
   (format "%s dependency:tree" maven-command)
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    95
   (switch-to-buffer maven/help-buffer-name)) )
1109
09d967bff50f help:effective-pom help:effective-settings dependency:tree
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1108
diff changeset
    96
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
    97
(defun maven/project-root ()
1144
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
    98
  "Root of project."
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
    99
  (let ( (dir default-directory) (found nil) )
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   100
    (while (and (not found) (> (length dir) 5))
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   101
      (when (file-exists-p (concat dir "/pom.xml"))
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   102
        (setq found dir))
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   103
      (setq dir (expand-file-name (concat dir "/.."))))
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   104
    found))
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   105
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
   106
(defun maven/file-package ()
1144
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   107
  "Return file package."
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   108
  (save-excursion
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   109
    (goto-char (point-min))
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   110
    (let (pkg cls)
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   111
      (re-search-forward "package +\\([[:alnum:]_.]+\\) *;" nil t)
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   112
      (setq pkg (match-string-no-properties 1))
1152
0654c471df55 Improve matching pattern for class name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1151
diff changeset
   113
      (re-search-forward "class\\s +\\([[:alnum:]_]+\\)\\(\\s \\|\n\\|implements [^{]*\\|extents [^{]*\\)*{" nil t)
1144
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   114
      (setq cls (match-string-no-properties 1))
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   115
      (when (and pkg cls)
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   116
        (concat pkg "." cls))) ))
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   117
1151
350534cdf7be Add missing autoloads.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1145
diff changeset
   118
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
   119
(defun maven-run-file ()
1144
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   120
  "Run exec:java for current file."
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   121
  (interactive)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
   122
  (let* ( (default-directory (concat (maven/project-root) "/")) )
1144
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   123
    (if (not default-directory)
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   124
        (message "Can't find maven project root")
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   125
      (compilation-start
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
   126
       (format "%s exec:java -Dexec.mainClass=%s" maven-command (maven/file-package))))))
1144
7b3c20a4ddfa Run exec:java for current file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1143
diff changeset
   127
1151
350534cdf7be Add missing autoloads.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1145
diff changeset
   128
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
   129
(defun maven-run-test ()
1145
ce218b01999d Run maven test
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1144
diff changeset
   130
  "Run test -Dtest=... for current file."
ce218b01999d Run maven test
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1144
diff changeset
   131
  (interactive)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
   132
  (let* ( (default-directory (concat (maven/project-root) "/")) )
1145
ce218b01999d Run maven test
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1144
diff changeset
   133
    (if (not default-directory)
ce218b01999d Run maven test
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1144
diff changeset
   134
        (message "Can't find maven project root")
ce218b01999d Run maven test
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1144
diff changeset
   135
      (compilation-start
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1512
diff changeset
   136
       (format "%s test -Dtest=%s" maven-command (maven/file-package))))))
1145
ce218b01999d Run maven test
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1144
diff changeset
   137
1508
fad1a57bf25f Move maven handling logic from maven-central.el to separate file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1302
diff changeset
   138
(provide 'maven)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   139
1508
fad1a57bf25f Move maven handling logic from maven-central.el to separate file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1302
diff changeset
   140
;;; maven.el ends here