Sonntag, 5. Februar 2012

Maven: Überschreiben der Konfiguration bei Reporting Plugins

Maven 3.0.3
maven-site-plugin 3.0

Das Problem:
Im Parent pom war eine alte Version vom maven-site-plugin festgelegt und sollte im Projekt pom überschrieben werden, irgendwie war es aber nicht möglich das mit den normalen Mechanismen hinzukriegen.
Die Lösung fand ich dann in einem Sonatype Blog Eintrag.
Man überschreibt die Version einfach dadurch indem man dem Plugin eine Dependency hinzufügt, die seine eigene Version hochschraubt.

 
  
   
    org.apache.maven.plugins
    maven-site-plugin
    
     de
    
    3.0
    
     
      org.apache.maven.plugins
      maven-site-plugin
      3.0
     
    
   
  
 

Interessanterweise müssen beide Version Informationen angegeben werden, auch wenn sie ident sind, ansonsten führt es nicht zum gewünschten Ergebnis.

Donnerstag, 2. Februar 2012

Statische HashMap deklarieren und mit statischen Konstruktor initialisieren

Eine statische finale HashMap ist eine tolle Sache, aber wie befüllen?

Hier ein Codeschnipsel, das dies vorführt:

public final class Constants {
 public static final Map ERRORMAP = new HashMap();
 public static final String ERROR_500 = "f500";
 public static final String ERROR_502 = "f502";
 public static final String ERROR_503 = "f503";
 public static final String ERROR_504 = "f504";
 public static final String ERROR_505 = "f505";
 public static final String ERROR_506 = "f506";
 static {
  errorMap.put(ERROR_500, "ConvertListDef: Invalid characters before newline. Only spaces and tabs allowed.");
  errorMap.put(ERROR_502, "ConvertListDef: Missing '='");
  errorMap.put(ERROR_503, "ConvertListDef: Value does not comply with naming convention");
  errorMap.put(ERROR_504, "ConvertListDef: Syntactically invalid Attributename");
  errorMap.put(ERROR_505, "ContextDef: Name of context invalid");
  errorMap.put(ERROR_506, "ContextDef: Name of contextproperty invalid");
 }
}

Der Zauberbereich ist der "statische" Konstruktor, der nur einmal bei Programmstart aufgerufen wird und mir meine HashMap befüllt.

Links:
Guido Krüger - JAVA 1.1 lernen - Kapitel 7
Siafoo Snippet