NetBeans Maven2 + IDE Variables + NB Actions: Problem

T

tuxedo

Gast
Hallo zusammen,

Ich benutze NB6.8 um meine Anwendungen zu entwickeln. Zum bauen und deployen benutze ich die in NB eingebaute Maven-Funktionalität.

Das hat bisher prima funktioniert. Aber jetzt bin ich über ein Problem mit den IDE Variablen ( IDEVariables - NetBeans Wiki ) gestolpert:

Ich möchte eine benutzerdefinierte Aktion (custom action) einrichten, die gebrauch von den IDE Variablen macht (Project Properties -> Actions -> ...)

Die Variable soll letztenendes in der POM File ausgewertet werden.

Mit den vordefinierten Aktionen scheint das prima zu funktionieren. Aber nicht mit eigenen Aktionen - siehe angehänte Screenshots:

Der erste zeigt die vordefinierte Aktion "build". Hier hab ich die Maven2 Variable "mas.home" mit dem Inhalt der IDE Variablen MAVEN_HOME gefüllt. Funktioniert prima.

Der zweite Screenshot zeigt eine eigene, benutzerdefinierte Aktion die letztendlich (zu demonstrationszwecken) das gleiche tun soll. Aber in diesem Fall wird "mas.home" nicht mit dem Inhalt aus "MAS_HOME" gefüllt. Stattdessen enthält "mas.home" den String "${MAS_HOME}"...

Ist das ein Bug? Gibts da ein Workaround?

Ich will doch nur den Inhalt einer IDE Variablen in der POM nutzen können...Und das mit einer eigenen Aktion...

Hat jemand nen Tipp für mich?

br,
Alex

108724322.png


560227206.png
 
M

maki

Gast
Ich will doch nur den Inhalt einer IDE Variablen in der POM nutzen können...Und das mit einer eigenen Aktion...
Würde davon dringend abraten, du wills toch nicht das dein Maven Build von Netbens abhängt.
Definiere dir Profile in der Pom, da kannst du dann auch unterschiedliche Variaben mit unterschiedlichem Inhalt haben, und Profile lassen sich in NB sehr komfortabel aktivieren.
 
T

tuxedo

Gast
Der Build hängt davon nicht ab... Im Gegenteil...

Gebaut wird unabhängig von der IDE Variablen. Was ich letzen endes haben möchte ist eine "Aktion" in der IDE, mit der ich a) bauen kann wie mit Maven und b) das gebaut gleich verwenden (nicht laufen lassen) kann.

Hintergrund:

Ich hab einen kleinen Server der sich modular zur Laufzeit erweitern lässt. Wenn ich jetzt an so einem Modul herumschraube, dann will ich das ja auch testen. Ich kann dazu entweder die IDE verlassen und die Datei die beim Build rausfällt an eine bestimmte Stelle legen, ODER ich benutze sowas wie die Custom Actions die man in Verbindung mit der IDE Variablen geschickt für sowas einsetzen könnte. Einfach die Variable in NetBeans anlegen und die Netbeans-Action ausführen. Der rest geschieht automatisch.

Klar, Maven kann das auch über den normalen Build-Prozess. Aber ich hätte dafür gerne ne extra Aktion die vom eigentlichen Maven-Prozess unabhängig ist.

Aber das Problem ist dass diese IDE Variablen offenbar mit Custom Actions nicht funktionieren ...?!

- Alex
 
M

maki

Gast
Maven ist nicht flexibel, das Projekt hat sich an Maven anzupassen, nicht umgekehrt ;)

Mein Tipp:
Sorge dafür das der Maven Build das kann was du möchtest, danach kommt Netbeans.

Aber vielleciht habe ich dich auch komplett falsch verstanden.
 
T

tuxedo

Gast
Mein Tipp:
Sorge dafür das der Maven Build das kann was du möchtest, danach kommt Netbeans.

Aber vielleciht habe ich dich auch komplett falsch verstanden.

Der Maven Build macht ja genau das was ich will. Bauen.

Aber in Netbeans will ich entwickeln. Und entwickeln heisst auch "ausprobieren". Und dafür will ich die "Actions" benutzen. Netbeans koppelt die in einem Maven-Projekt halt an Maven. Gut. Stört mich wenig. Aber die IDE Variablen verbauen mir den Weg :-(

Im Prinzip kann man das was ich da machen will mit einem AppServer wie JBoss vergleichen. In Eclipse kann ich ja so einen JBoss-Server definieren. Und wenn ich an Modulen arbeite, dann kann ich die "ausprobieren". Mit wenigen klicks aus der IDE raus wird das Modul in den JBoss deployed. Super Sache...

Sowas ähnliches will ich mit Netbeans jetzt auch machen. Nur hab ich halt keinen AppServer wie JBoss oder Glassfish, sondern etwas anderes das dem "deploy" Prinzip nur etwas ähnelt. Die "Bedienung" sollte aber ähnlich sein: Mit der IDE Variablen definieren ich das "Ziel" und mit der Custom Action definiere ich die Aktion die mit dem durch Maven gebauten Modul gefahren werden soll. Und diese Aktion verwendet eben diese IDE Variable.

Wenn ich das in NB auch anders erreichen kann: Ich bin offen für alles ...

- Alex

[update]
Mir fällt da gerade ein:
In Eclipse kann ich ja nicht nur Projekte starten (also direkt ausführen), sondern ich kann auch z.B. einen Kommandozeilenbefehl starten...

Gibts sowas in Netbeans auch?
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
Maven ist eine komplette Toolchain ;)

Hab selber schon Maven den JBoss runterladen lassen (gibt im repo), entpacken, konfigurieren, starten, deployen, tests ausführen, stoppen, mit dem Cargo Plugin, Tomcat auch.

Wie aufwändig ist es denn bei dir ein Modul zum Server hinzuzufügen?
evt. könnte man das mit einem Ant Run Task erledigen.
Dann könntest du das alles imemr noch von Maven aus steuern lassen, egal welche IDE.
 
T

tuxedo

Gast
Ich weiß dass Maven sowas kann. Aber wie gesagt: Der Pfad wohin das Ding soll, hätte ich gern in der IDE eingestellt (im Team hat da jeder so seine eigenen Vorlieben...). Einen Antrun Task hab ich schon. Der funktioniert auch schon. Nur krieg ich den verdammten Pfad nicht aus der IDE Variablen ins POM ...
Von der Konsole aus krieg ich das auch ohne Netbeans hin.. Aber wie gesagt: Ich hätt diese property gerne in der IDE konfiguriert...

Netbeans scheint da einen Bug zu haben der das übergeben der IDE Variablen an eigen angelegte "Actions" nicht erlaubt...

Ist das Problem jetzt angekommen? :toll:

Gruß
Alex
 

Ähnliche Java Themen

Neue Themen


Oben