Maven Additional Plugin 1.0.4 リリースされたがバグがあり(1.0.5ではなおってます)


Maven Additional Plugin は m2eclipseや、q4eと使うと便利なEclipseプラグインです。
.classpathに追加された変数を元にjarファイルをsrc/main/webapp/WEB-INF/lib にコピーできます。
これがないとEclipse上ではコンパイルできて mvn install すればwarができるけどTomcat Pluginで動かすのがメンドクサイ。


このまえ1.0.3でq4eも使えるようにしてもらったが、設定を.settingにおちていないと共有できず使いづらいので対応してもらった。更新サイトからinstallして再起動しただけだとうまくupdateされなかったので eclipse -clean で起動。


.settings\net.skirnir.eclipse.maven.prefs の設定をこんな感じで共有するとよいだろう。

containerId=org.devzuz.q.maven.jdt.core.mavenClasspathContainer,org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER
eclipse.preferences.version=1
excludes=junit,servlet-api,geronimo-j2ee_1.4_spec


デフォルト値は以下のようになっている。

containerId=maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER
destination=src/main/webapp/WEB-INF/lib
eclipse.preferences.version=1
excludes=junit,servlet-api


だけどバグっていて設定値はファイルにおちているが設定が反映されない。

Index: net/skirnir/eclipse/maven/MavenPlugin.java
===================================================================
--- net/skirnir/eclipse/maven/MavenPlugin.java  (リビジョン 1420)
+++ net/skirnir/eclipse/maven/MavenPlugin.java  (作業コピー)
@@ -130,13 +130,14 @@
 
     public String getPersistentProperty(IProject project, String key)
     {
-        return getPreferenceStore().getString(key);
+        String value = getPreferenceStore(project).getString(key); // for debug
+        return value;
     }
 
 
     public void setPersistentProperty(IProject project, String key, String value)
     {
-        getPreferenceStore().setValue(key, value);
+        getPreferenceStore(project).setValue(key, value);
     }


としないとだめでした。getPreferenceStore() だと

    public IPreferenceStore getPreferenceStore() {
        // Create the preference store lazily.
        if (preferenceStore == null) {
            preferenceStore = new ScopedPreferenceStore(new InstanceScope(),getBundle().getSymbolicName());

        }
        return preferenceStore;
    }


こっちがよばれて .settingじゃなくて.metaのほうがつかわれてしまう。残念!!!
たぶんEclipse3.2でも同じだと思います。Eclipse3.3.2で確認しました。