Maven / Icy: wrong version of Icy?

dear all,

when I “run” a maven plugin (after having included the “main” entry as indicated in Stephane’s pages - see below), the Icy version that shows up is version The current version of Icy on my computer is How comes?

Thank you for your help,

PS I see that Icy is declared in Maven (in the plugin example) without a version number. Is this the culprit?

Found a way: in the Maven dependencies, no version was indicated for Icy. It seems that Eclipse/Maven is choosing the lowest numbered version. If forced at (the latest version today), it runs under the proper version.

PS but it keeps showing me the “magic wand” new option, despite me clicking on “don’t display again”.

1 Like

PS Icy (under Eclipse-Maven-Debug-my plugin) is missing all the plugins and user interface installed on my local copy of Icy. This is really much less convenient than NHerve Eclipse plugin for non-Maven projects. Plus, this “Maven-Icy” is downloading 20-30 file updates each time I start it from a new Windows session.

1 Like

Dear Frederic,

Indeed debugging plugin using Maven is not as convenient that it was using the old Icy-App project we had with Eclipse. What i’m doing myself is to use a similar Icy-App eclipse Java project containing a full Icy application folder where i’m just referencing the icy.jar file in the build path libraries section:

Then I’m adding the plugin i want to debug to Build Path Projects section:

Don’t forget to delete any JAR version of the plugin in the plugins folder of Icy-App otherwise it may conflict with your dev plugin.
And that is, you just need to launch the Icy-App in debug and should be able to debug your plugin :slight_smile:

Hope that helps !

– Stephane

1 Like

The Icy-App is also a Maven project ? if not (most likely), how do I build this Icy-App within Eclipse?
And my plugin Jar needs to be re-compiled by Maven each time I test something?


Hi Frederic !

It is normal that in the plugin example Icy is declared without its version number because it is already declared in the parent POM file.
You have a quick response about what is a parent POM here : directory - What does the parent tag in Maven pom represent? - Stack Overflow
Furthermore, you can check our parent POM file here : Bioimage Analysis / Parent POM plugin
You have also some plugins already declared as Icy that you can include directly. (Connected Components, Vecmath, Spot detector, ROI blocks and many others)

The current declared version for Icy is 2.1.3 but we will update it soon. Once it is done, you just have to update the parent’s version in your POM.xml (from 1.0.3 to 1.0.4) :
Capture d’écran 2021-04-26 à 10.18.14

The disadvantage of a Maven Project is if you want to include a dependency, it must be a Maven project too and deployed in your local repository (inside the .m2 directory from your user directory) or upload in a Maven repository online as Nexus or Gitlab.

In our article on how to create a new plugin, in the last paragraph, you have a tutorial on how deploy a Maven project on Gitlab.

Finally, the Icy-App is not a Maven project as it is only a wrapper for Icy-Kernel.
To test your plugin, you must execute the commmand mvn package to create a Jar that you can include in the Icy-App’s plugin directory and run Icy as usual.

I hope I have answered to all your questions.

– Amandine

Thank you Amandine. I will look at your post step by step and will return with questions if necessary.

Actually, within Eclipse, I “click” on the green bug, after having selected the root of my routines (and added in my source code a “main (Sting args)”). This allows me to run a “debug” session, unfortunately not under the Icy complete environment.

Well, anyway, thank you for your answer and detailed comments.

1 Like