Skip to content
Snippets Groups Projects

Icy Parent POM

Maven logo

License: GPL v3
Twitter
Image.sc forum

This is the repository for the Maven configuration of pom-icy, Icy's Parent POM, a Maven file for bioimage analysis software Icy and its plugins, which was developed by members or former members of the Biological Image Analysis unit at Institut Pasteur. This project is licensed under GPL3 license.
Icy is developed and maintained by Biological Image Analysis unit at Institut Pasteur. The source code of Icy is also licensed under a GPL3 license.

Description

To know more about how POM file in Maven projects works, you can check those resources:

This project centralizes the Maven configuration for Icy as well as its plugins in one file. It will be inherited to the other projects with the parent block:

<parent>
    <artifactId>pom-icy</artifactId>
    <groupId>org.bioimageanalysis.icy</groupId>
    <version>2.1.0</version>
</parent>

There is three profiles to facilitate project management:

  • core: Dedicated to Icy core parts development (kernel and its dependencies). Runs by default clean and package* goals.
  • plugin: Dedicated to Icy plugin development (including default dependencies and rules). Runs by default clean and package* goals.
  • library: Dedicated to plugin library which need dependencies extraction, in which case you need to define artifact(s) to extract through the artifact-to-extract property. You should almost always use this profile along the plugin profile.

* The package phase generate three JARs: one to executable for Icy, a source JAR and a JavaDoc JAR.

To deploy the project/artefact to the Icy's Nexus repositories just use the deploy goal instead. Note that Nexus development repositories (for SNAPSHOT versions) are accessible only in Pasteur offices or through the private VPN. You want to upload on our public repositories and you do not have an account ? Send a mail to Icy Team, and we will grant you access. Are you a Pasteur employee ? A connection through PasteurID is coming soon !

To use a profile, you can:

  • Run the command in your terminal: mvn -P<profile-name>, and to use multiple profiles, mvn -P<profile-name-1>,<profile-name-2
  • In your IDE:
  • Overriding the profile activation in your project to have it by default:
<profiles>
  <profile>
    <id>same-id-as-the-one-to-override</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
  </profile>
</profiles>

After, you can just run mvn or in your IDE without any configuration, and it will do everything for you!

-> To see which profiles are activated, run the command mvn help:active-profiles in your terminal.

Dependency list

To keep a cohesion between Icy and all plugins, we have listed some most used plugins as dependency to others plugins and set its version.

To know them, check the <properties> block in the pom.xml.

To call them, you need to add the <dependency> block as follows:

<dependency>
  <groupId>org.bioimagenalaysis.icy</groupId>
  <artifactId>name-of-plugin</artifactId>
</dependency>

Citation

Please also cite the Icy software and mention the version of Icy you used (bottom right corner of the GUI or first lines of the Output tab):
de Chaumont, F. et al. (2012) Icy: an open bioimage informatics platform for extended reproducible research, Nature Methods, 9, pp. 690-696
http://icy.bioimageanalysis.org

Authors

Amandine TOURNAY