Domyślnie NetBeans IDE 6.1 nie udostępnia wsparcia dla tworzenia projektów opartych o Maven 2 (dalej zwanego m2) i trzeba ratować się instalacją wtyczki Maven.
Z menu Tools wybieramy pozycję Plugins i odszukujemy wtyczki Maven.
Zaznaczamy ją, wciskamy przycisk Install i po chwili NetBeans już wie, co to Maven.
Wciskam Ctrl+Shift+N, a następnie z kategorii Maven wybieram Maven Project.
Wciskam przycisk Next >.
Wybieram Maven Mojo Archetype.
W zależności od "zasobności" lokalnego repozytorium Mavena lista może się nieznacznie różnić od zaprezentowanej. W przypadku braku potrzebnego archetypu (= rodzaju wtyczki wspierającej tworzenie projektu) można skorzystać z przycisku Add... i go dodać ręcznie.
I Finish. Po chwili projekt wtyczki jest gotowy.
W oknie Output - Project Creationg pojawi się BUILD SUCCESSFUL.
Zmieniam nazwę klasy mojo na EchoMojo oraz jej zawartość, aby definiowała zadanie echo, które przyjmuje jeden argument, który z kolei będzie wypisywany podczas uruchomienia.
package pl.jaceklaskowski.maven.plugins.echo;Dodanie @requiresProject false określa, że wykonanie wtyczki nie będzie wymagało projektu mavenowego do jej wykonania (bardzo pomocne do wtyczek narzędziowych niezależnych od projektu jak help:describe czy mojego testowego uruchomienia).
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
/**
* Zadanie, ktore wypisuje podany komunikat
* @goal echo
* @requiresProject false
*/
public class EchoMojo extends AbstractMojo {
/**
* Komunikat
* @parameter expression="${komunikat}"
* @required
*/
private String komunikat;
public void execute() throws MojoExecutionException {
getLog().info(komunikat);
}
}
Wybieram menu Clean and Build
które spowoduje zainstalowanie wtyczki w lokalnym repozytorium mavenowym. Pomyślna instalacja wtyczki w repozytorium, to wymarzona pora na jej uruchomienie.
Najpierw sprawdzę, czy wtyczka jest rozpoznawana przez m2.
jlaskowski@work ~(Żebym to ja wiedział jak pozbyć się tego Unknown).
$ mvn -v
Maven version: 2.0.7
Java version: 1.5.0_14
OS name: "windows xp" version: "5.1" arch: "x86"
jlaskowski@work ~
$ mvn help:describe -DgroupId=pl.jaceklaskowski.maven.plugins.echo -DartifactId=echo-maven-plugin
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'help'.
[INFO] ----------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [help:describe] (aggregator-style)
[INFO] ----------------------------------------------------------------------------
[INFO] [help:describe]
[INFO] artifact pl.jaceklaskowski.maven.plugins.echo:echo-maven-plugin: checking for updates from central
[INFO] Plugin: 'pl.jaceklaskowski.maven.plugins.echo:echo-maven-plugin:1.0'
-----------------------------------------------
Group Id: pl.jaceklaskowski.maven.plugins.echo
Artifact Id: echo-maven-plugin
Version: 1.0
Goal Prefix: echo
Description:
Unknown
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
I w końcu faktyczne uruchomienie wtyczki.
jlaskowski@work ~Działa! Można jeszcze wprowadzić kilka usprawnień w jej działaniu, ale to już pozostawiam wytrwałym. A skoro o nich, to pytanie konkursowe (w trwającym od jakiegoś czasu konkursie bez nagród): Jaki rodzaj wtyczki wspomaga tworzenie projektów w Maven 2 (projekty wtyczek, aplikacji webowych, itp.)?
$ mvn pl.jaceklaskowski.maven.plugins.echo:echo-maven-plugin:1.0:echo -Dkomunikat="Witaj Jacku"
[INFO] Scanning for projects...
[INFO] ----------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [pl.jaceklaskowski.maven.plugins.echo:echo-maven-plugin:1.0:echo] (aggregator-style)
[INFO] ----------------------------------------------------------------------------
[INFO] [echo:echo]
[INFO] Witaj Jacku
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
Jeśli masz swoją opinię nt. przydatności (bądź nieprzydatności) NetBeans 6.1 polecam udział w konkursie NetBeans IDE 6.1 Beta Blogging Contest, w którym głos ludu jest nagradzany, a najwyższą wygraną jest...własna wiedza!
Brak komentarzy:
Prześlij komentarz