2014-12-07 94 views
3

我在Emacs中爲我的Java項目使用JDEE。 JDEE對maven不適用。最近我遇到了Malabar Mode,它更好地支持Emacs中基於Maven的Java項目。Emacs Java Malabar模式

我設法在M-x列表軟件包中使用melpa安裝malbar模式。但是,當我收到錯誤消息對mvn package我簡單的應用程序https://github.com/vijayendra/JavaSrc/tree/master/my-app

Projects.get('/home/egnyte/src/my-app/pom.xml', []).run(['package'], [], [:]) 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building my-app Maven Webapp 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 0.081s 
[INFO] Finished at: Sat Dec 06 23:55:22 PST 2014 
[INFO] Final Memory: 20M/48M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Execution error 
org.apache.maven.plugin.PluginResolutionException: Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for or\ 
g.apache.maven.plugins:maven-resources-plugin:jar:2.5 
     at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:129) 
     at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:142) 
     at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getMojoDescriptor(DefaultMavenPluginManager.java:261) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.getMojoDescriptor(DefaultBuildPluginManager.java:185) 

我的emacs的版本如下:

emacs -version 
GNU Emacs 24.3.1 
Copyright (C) 2013 Free Software Foundation, Inc. 
GNU Emacs comes with ABSOLUTELY NO WARRANTY. 
You may redistribute copies of Emacs 
under the terms of the GNU General Public License. 
For more information about these matters, see the file named COPYING. 

我的.emacs文件如下:

(require 'package) ;; You might already have this line 
(add-to-list 'package-archives 
      '("melpa-stable" . "http://stable.melpa.org/packages/") t) 
;; unstable packages 
;; (add-to-list 'package-archives 
;;    '("melpa" . "http://melpa.org/packages/") t) 
(when (< emacs-major-version 24) 
    ;; For important compatibility libraries like cl-lib 
    (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))) 
(package-initialize) ;; You might already have this line 

(require 'cedet) 
(require 'semantic) 
(load "semantic/loaddefs.el") 
(semantic-mode 1) 
(setq malabar-groovy-lib-dir "~/.m2/repository/com/software-ninja/malabar/1.5.10") 
(require 'malabar-mode) 
(add-to-list 'auto-mode-alist '("\\.java\\'" . malabar-mode))  

我的maven版本如下:

mvn -version 
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T13:58:10-07:00) 
Maven home: /home/egnyte/lib/apache-maven-3.2.3 
Java version: 1.7.0_65, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.8.0-29-generic", arch: "amd64", family: "unix" 

如何獲得malabar模式?

+0

你有沒有試着問上的馬拉巴爾模式問題跟蹤?我相信,也有一個正在進行的代碼重寫malabar模式... – rimero 2014-12-08 01:37:35

回答

1

有兩個答案。

首先,malabar模式卡在maven 3.0.4中,所以嘗試該版本。也不要設置lib目錄。它應該被自動設置。

其次,爲了解決maven版本問題,我從頭開始重寫malabar模式。按照https://github.com/m0smith/malabar-mode/blob/develop/doc/2.0/INSTALL.md的說明操作。此版本適用於3.0.4之後的所有Maven版本。這是一項正在進行的工作,並非所有功能都在那裏。
如果你有問題或建議在GitHub庫創建一個問題,因爲現在是讓你的願望衆所周知的好時機

編輯:馬拉巴爾2.0已經發布到MELPA。要立即安裝:

```

(load-file "~/projects/cedet/cedet-devel-load.el") 
(add-hook 'after-init-hook (lambda() 
      (message "activate-malabar-mode") 
      (activate-malabar-mode))) 

(add-hook 'malabar-java-mode-hook 'flycheck-mode) 
(add-hook 'malabar-groovy-mode-hook 'flycheck-mode) 

```

+0

我試着用maven 3.0.4並刪除了lib目錄。仍然我得到同樣的錯誤。此外,我無法獲得2.0版本的工作。今天我將再次嘗試設置2.0版本。我會在github上發佈bug。 – 2014-12-09 18:37:33

+0

是的,請移至2.0並在其上發佈錯誤。這將是一個更好的經驗。此外,如果有缺失的功能也將它們作爲問題發佈。 – 2014-12-09 18:45:17