[ImageJ-devel] What do I need to add to my NetBeans ImgLib2 project to open a TIFF file

Curtis Rueden ctrueden at wisc.edu
Fri Dec 5 12:13:53 CST 2014


Hi Michael,

> gives me a self contained runnable jar. Progress! I’m learning.
>
> BUT as before when I run the jar, I get the Exception: No compatible
> service: org.scijava.service.SciJavaService

Self contained runnable JARs (i.e., uber-jars) are convenient in some ways,
but come with a host of problems.

1) If you do not shade your dependencies (i.e., rename their packages),
then you may ship duplicate and/or incompatible classes with other
libraries. This makes your library much harder to reuse in a shared system
such as an ImageJ installation.

2) You cannot ship piecemeal updates to individual dependencies -- i.e.,
every time your code changes, you must ship a new (possibly very large) new
JAR file to your users.

3) The SciJava annotation processor, responsible for indexing the @Plugin
annotations that drive SciJava/ImageJ2/etc. plugins, writes the metadata
into a resource file at META-INF/json/org.scijava.plugin.Plugin within the
JAR. If you try to create an uber-jar via the assembly or shade plugin, the
default combination algorithm will overwrite those files, stomping the
annotations.

We wrote some code which offers one way around this:

https://github.com/imagej/imagej/blob/imagej-2.0.0-rc-17/pom.xml#L614-L631

For more on uber-jars, see also:

http://imagej.net/Frequently_Asked_Questions#How_can_I_call_ImageJ_from_my_software.3F

The gist is: avoid using an uber-jar unless you really need it.

> I’ve got it working with your help!

Awesome, congratulations. Let us know if you encounter any more roadblocks.

Regards,
Curtis

On Fri, Dec 5, 2014 at 12:03 PM, Michael Ellis <michael.ellis at dsuk.biz>
wrote:

> Adding a build section to the POM:
>
>   <build>
>     <plugins>
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-shade-plugin</artifactId>
>         <version>2.3</version>
>         <executions>
>           <execution>
>             <phase>package</phase>
>             <goals>
>               <goal>shade</goal>
>             </goals>
>             <configuration>
>               <transformers>
>                 <transformer
> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
>                   <manifestEntries>
>                     <Main-Class>com.mycompany.app.App</Main-Class>
>                     <Build-Number>123</Build-Number>
>                   </manifestEntries>
>                 </transformer>
>               </transformers>
>             </configuration>
>           </execution>
>         </executions>
>       </plugin>
>     </plugins>
>   </build>
>
> To the POM gives me a self contained runnable jar. Progress! I’m learning.
>
> BUT as before when I run the jar, I get the Exception: No compatible
> service: org.scijava.service.SciJavaService
> =================================================================
>
> [Michaels-Retina:~/temp/deleteme/my-app] michaelellis% java -jar
> target/my-app-1.0-SNAPSHOT.jar
> Hello World!
> Exception: No compatible service: org.scijava.service.SciJavaService
> =================================================================
>
> Still vexed!
>
>
> On 5 Dec 2014, at 17:17, Curtis Rueden <ctrueden at wisc.edu> wrote:
>
> Hi Michael,
>
> > mvn claims to build everything OK
>
> Yep, it did build successfully.
>
> > % java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
> > Error: A JNI error has occurred, please check your installation and try
> again
> > Exception in thread "main" java.lang.NoClassDefFoundError: io/scif/SCIFIO
>
> Maven is primarily a build tool. It puts the correct JARs on your
> classpath at compile time. In your case, that is scifio-0.17.1.jar and its
> dependencies.
>
> However, the way you are launching your program is not putting the
> required dependencies on the classpath. You put only
> my-app-1.0-SNAPSHOT.jar on the classpath, and its dependencies are missing.
> So of course Java cannot find the needed classes.
>
> The gist is: it is your responsibility to assemble the dependencies and
> ensure they are on the classpath somehow when you launch your application.
>
> There are several ways to accomplish this. Here is one generally useful
> way using Maven, which does not assume you are doing anything
> ImageJ-related:
>
>     $ mvn dependency:copy-dependencies
>     $ java -cp 'target/my-app-1.0-SNAPSHOT.jar:target/dependency/*'
> com.mycompany.app.App
>
> The "copy-dependencies" goal copies all the JAR files needed by your
> program into the target/dependency folder, for easy subsequent consumption.
>
> Alternately, the "ImageJ way" of dealing with deployment is to ship all
> needed dependencies in the "jars" folder of your ImageJ application. We
> created a Maven goal for this too, which you can use as follows:
>
>     $ mvn -Dimagej.app.directory=/Applications/ImageJ.app
> -Ddelete.other.versions=true
>
> Which will copy your JAR and its dependencies into your ImageJ
> installation at /Applications/ImageJ.app. But note that in order for this
> goal to work, you must extend the pom-imagej parent (see
> https://github.com/imagej/minimal-ij1-plugin for an example).
>
> A third solution is to use the exec-maven-plugin to launch your
> application directly using Maven. E.g.:
> https://github.com/imagej/imagej/blob/imagej-2.0.0-rc-17/pom.xml#L255-L278
>
> Regards,
> Curtis
>
> On Fri, Dec 5, 2014 at 11:03 AM, Michael Ellis <michael.ellis at dsuk.biz>
> wrote:
>
>> Curtis,
>>
>> Thanks but it is still not working.
>>
>> I have cut out using NetBeans and am now just using the CLI and a text
>> editor.
>>
>> POM as follows:
>>
>> ========================================================
>> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance"
>>   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>> http://maven.apache.org/xsd/maven-4.0.0.xsd">
>>   <modelVersion>4.0.0</modelVersion>
>>
>>   <groupId>com.mycompany.app</groupId>
>>   <artifactId>my-app</artifactId>
>>   <version>1.0-SNAPSHOT</version>
>>   <packaging>jar</packaging>
>>
>>   <name>my-app</name>
>>   <url>http://maven.apache.org</url>
>>
>>   <properties>
>>     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>   </properties>
>>
>> <repositories>
>> <repository>
>> <id>imagej.public</id>
>> <url>http://maven.imagej.net/content/groups/public</url>
>> </repository>
>> </repositories>
>>
>>   <dependencies>
>>     <dependency>
>>       <groupId>junit</groupId>
>>       <artifactId>junit</artifactId>
>>       <version>3.8.1</version>
>>       <scope>test</scope>
>>     </dependency>
>>
>> <dependency>
>>   <groupId>io.scif</groupId>
>>   <artifactId>scifio</artifactId>
>>   <version>0.17.1</version>
>> </dependency>
>>
>>   </dependencies>
>> </project>
>> ========================================================
>>
>> File hierarchy:
>>
>> .
>> ./.DS_Store
>> ./pom.xml
>> ./src
>> ./src/main
>> ./src/main/java
>> ./src/main/java/com
>> ./src/main/java/com/mycompany
>> ./src/main/java/com/mycompany/app
>> ./src/main/java/com/mycompany/app/App.java
>> ./src/test
>> ./src/test/java
>> ./src/test/java/com
>> ./src/test/java/com/mycompany
>> ./src/test/java/com/mycompany/app
>> ./src/test/java/com/mycompany/app/AppTest.java
>> ========================================================
>>
>> App.java as follows:
>>
>> package com.mycompany.app;
>>
>> import io.scif.FormatException;
>> import io.scif.ImageMetadata;
>> import io.scif.Plane;
>> import io.scif.Reader;
>> import io.scif.SCIFIO;
>>
>> public class App
>> {
>>     public static void main( String[] args )
>>     {
>> try {
>>         System.out.println( "Hello World!" );
>> SCIFIO scifio = new SCIFIO();
>> String sampleImage
>> =
>> "8bit-signed&pixelType=int8&lengths=50,50,3,5,7&axes=X,Y,Z,Channel,Time.fake";
>> final Reader reader = scifio.initializer().initializeReader(sampleImage);
>> System.out.printf("reader=%s%n", reader );
>>         } catch (Exception e) {
>>         System.out.printf("Exception: %s%n", e.getMessage() );
>>         }
>>     }
>> }
>>
>> ========================================================
>>
>> mvm -U install
>>
>> [Michaels-Retina:~/temp/deleteme/my-app] michaelellis% mvn -U install
>> [INFO] Scanning for projects...
>> [INFO]
>>
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO] Building my-app 1.0-SNAPSHOT
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO]
>> [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @
>> my-app ---
>> [INFO] Using 'UTF-8' encoding to copy filtered resources.
>> [INFO] skip non existing resourceDirectory
>> /Users/michaelellis/temp/deleteme/my-app/src/main/resources
>> [INFO]
>> [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ my-app
>> ---
>> [INFO] Changes detected - recompiling the module!
>> [INFO] Compiling 1 source file to
>> /Users/michaelellis/temp/deleteme/my-app/target/classes
>> [INFO]
>> [INFO] --- maven-resources-plugin:2.6:testResources
>> (default-testResources) @ my-app ---
>> [INFO] Using 'UTF-8' encoding to copy filtered resources.
>> [INFO] skip non existing resourceDirectory
>> /Users/michaelellis/temp/deleteme/my-app/src/test/resources
>> [INFO]
>> [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @
>> my-app ---
>> [INFO] Changes detected - recompiling the module!
>> [INFO] Compiling 1 source file to
>> /Users/michaelellis/temp/deleteme/my-app/target/test-classes
>> [INFO]
>> [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ my-app ---
>> [INFO] Surefire report directory:
>> /Users/michaelellis/temp/deleteme/my-app/target/surefire-reports
>>
>> -------------------------------------------------------
>>  T E S T S
>> -------------------------------------------------------
>> Running com.mycompany.app.AppTest
>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec
>>
>> Results :
>>
>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
>>
>> [INFO]
>> [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ my-app ---
>> [INFO] Building jar:
>> /Users/michaelellis/temp/deleteme/my-app/target/my-app-1.0-SNAPSHOT.jar
>> [INFO]
>> [INFO] --- maven-install-plugin:2.4:install (default-install) @ my-app ---
>> [INFO] Installing
>> /Users/michaelellis/temp/deleteme/my-app/target/my-app-1.0-SNAPSHOT.jar to
>> /Users/michaelellis/.m2/repository/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.jar
>> [INFO] Installing /Users/michaelellis/temp/deleteme/my-app/pom.xml to
>> /Users/michaelellis/.m2/repository/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.pom
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO] BUILD SUCCESS
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO] Total time: 1.962 s
>> [INFO] Finished at: 2014-12-05T16:59:50+00:00
>> [INFO] Final Memory: 18M/242M
>> [INFO] ————————————————————————————————————
>>
>> ========================================================
>>
>> mvn claims to build everything OK there seems to be no inclusion of any
>> scif libraries or class files.
>>
>>
>> When I run it I get:
>>
>> [Michaels-Retina:~/temp/deleteme/my-app] michaelellis% java -cp
>> target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
>> Error: A JNI error has occurred, please check your installation and try
>> again
>> Exception in thread "main" java.lang.NoClassDefFoundError: io/scif/SCIFIO
>> at java.lang.Class.getDeclaredMethods0(Native Method)
>> at java.lang.Class.privateGetDeclaredMethods(Class.java:2699)
>> at java.lang.Class.privateGetMethodRecursive(Class.java:3046)
>> at java.lang.Class.getMethod0(Class.java:3016)
>> at java.lang.Class.getMethod(Class.java:1782)
>> at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
>> at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
>> Caused by: java.lang.ClassNotFoundException: io.scif.SCIFIO
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>> ... 7 more
>>
>>
>> ========================================================
>>
>> I’ve been banging my head against this for two days now.
>>
>> So any help appreciated
>>
>>
>> On 5 Dec 2014, at 16:35, Curtis Rueden <ctrueden at WISC.EDU> wrote:
>>
>> Hi Michael,
>>
>> > The POM for io.scif:scifio:jar:0.17.1 is missing, no dependency
>> > information available
>>
>> Make sure you have the following <repositories> block in your POM:
>>
>> <repositories>
>> <repository>
>> <id>imagej.public</id>
>> <url>http://maven.imagej.net/content/groups/public</url>
>> </repository>
>> </repositories>
>>
>> Then rebuild with the "-U" flag. I don't know how to do this from
>> NetBeans, but you only need to do it once from the CLI -- then you can
>> return to NetBeans and it should work.
>>
>> Regards,
>> Curtis
>>
>> On Fri, Dec 5, 2014 at 6:07 AM, Michael Ellis <michael.ellis at dsuk.biz>
>> wrote:
>>
>>> I have followed the advice offered by Curtis regarding adding
>>> the io.scif: scifio dependency to my POM
>>>
>>> The dependency part of my POM looks like this:
>>>
>>>     <dependencies>
>>>         <dependency>
>>>             <groupId>net.imglib2</groupId>
>>>             <artifactId>imglib2</artifactId>
>>>             <version>2.2.1-SNAPSHOT</version>
>>>             <type>jar</type>
>>>         </dependency>
>>>         <dependency>
>>>             <groupId>io.scif</groupId>
>>>             <artifactId>scifio</artifactId>
>>>             <version>0.17.1</version>
>>>             <type>jar</type>
>>>         </dependency>
>>>     </dependencies>
>>>
>>> I am using NetBeans IDE, configured for use with maven project (I am slo
>>> using Java 8 and JavaFX)
>>>
>>> However when I attempt to Build (or Build with Dependencies)  within
>>> NetBeans, I get the following error message:
>>> ============================================================
>>>
>>> cd /Users/michaelellis/Documents/Development/MavenImgLib2FX;
>>> JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
>>> "/Applications/NetBeans/NetBeans
>>> 8.0.app/Contents/Resources/NetBeans/java/maven/bin/mvn" install
>>> Scanning for projects...
>>>
>>> ------------------------------------------------------------------------
>>> Building MavenImgLib2FX 1.0-SNAPSHOT
>>> ------------------------------------------------------------------------
>>> The POM for io.scif:scifio:jar:0.17.1 is missing, no dependency
>>> information available
>>> ------------------------------------------------------------------------
>>> BUILD FAILURE
>>> ------------------------------------------------------------------------
>>> Total time: 0.341s
>>> Finished at: Fri Dec 05 10:34:41 GMT 2014
>>> Final Memory: 7M/245M
>>> ------------------------------------------------------------------------
>>> Failed to execute goal on project MavenImgLib2FX: Could not resolve
>>> dependencies for project biz.dsuk:MavenImgLib2FX:jar:1.0-SNAPSHOT: Failure
>>> to find io.scif:scifio:jar:0.17.1 in http://repo.maven.apache.org/maven2
>>> was cached in the local repository, resolution will not be reattempted
>>> until the update interval of central has elapsed or updates are forced ->
>>> [Help 1]
>>>
>>> To see the full stack trace of the errors, re-run Maven with the -e
>>> switch.
>>> Re-run Maven using the -X switch to enable full debug logging.
>>>
>>> For more information about the errors and possible solutions, please
>>> read the following articles:
>>> [Help 1]
>>> http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
>>>
>>> ============================================================
>>>
>>> If I open a terminal window and cd into the project directory and:
>>>
>>> mvn clean package
>>>
>>> It succeeds.
>>>
>>> However, when I then attempt to run the project with:
>>>
>>> java -cp MavenImgLib2FX-1.0-SNAPSHOT.jar biz.dsuk.mavenimglib2fx.MainApp
>>>
>>> The application starts to execute but throws “No compatible service:
>>> io.scif.SCIFIOService” exception.
>>> ============================================================
>>>
>>> img1=CellImg [20x30]
>>> BufferedImage=BufferedImage at 3137c585: type = 10 ColorModel: #pixelBits
>>> = 8 numComponents = 1 color space = java.awt.color.ICC_ColorSpace at 134d9d5f
>>> transparency = 1 has alpha = false isAlphaPre = false
>>> ByteInterleavedRaster: width = 707 height = 699 #numDataElements 1
>>> dataOff[0] = 0
>>> Loading image...
>>> Exception in Application start method
>>> java.lang.reflect.InvocationTargetException
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.lang.reflect.Method.invoke(Method.java:497)
>>> at
>>> com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:363)
>>> at
>>> com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:303)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.lang.reflect.Method.invoke(Method.java:497)
>>> at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
>>> Caused by: java.lang.RuntimeException: Exception in Application start
>>> method
>>> at
>>> com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:875)
>>> at
>>> com.sun.javafx.application.LauncherImpl.lambda$launchApplication$150(LauncherImpl.java:157)
>>> at
>>> com.sun.javafx.application.LauncherImpl$$Lambda$50/553264065.run(Unknown
>>> Source)
>>> at java.lang.Thread.run(Thread.java:745)
>>> Caused by: java.lang.IllegalArgumentException: No compatible service:
>>> io.scif.SCIFIOService
>>> at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:243)
>>> at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:194)
>>> at org.scijava.service.ServiceHelper.loadServices(ServiceHelper.java:170)
>>> at org.scijava.Context.<init>(Context.java:244)
>>> at org.scijava.Context.<init>(Context.java:203)
>>> at org.scijava.Context.<init>(Context.java:142)
>>> at org.scijava.Context.<init>(Context.java:128)
>>> at io.scif.SCIFIO.<init>(SCIFIO.java:81)
>>> at biz.dsuk.mavenimglib2fx.MainApp.start(MainApp.java:38)
>>> at
>>> com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$156(LauncherImpl.java:821)
>>> at
>>> com.sun.javafx.application.LauncherImpl$$Lambda$53/681110827.run(Unknown
>>> Source)
>>> at
>>> com.sun.javafx.application.PlatformImpl.lambda$runAndWait$169(PlatformImpl.java:326)
>>> at
>>> com.sun.javafx.application.PlatformImpl$$Lambda$47/693632176.run(Unknown
>>> Source)
>>> at
>>> com.sun.javafx.application.PlatformImpl.lambda$null$167(PlatformImpl.java:295)
>>> at
>>> com.sun.javafx.application.PlatformImpl$$Lambda$49/1260282780.run(Unknown
>>> Source)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at
>>> com.sun.javafx.application.PlatformImpl.lambda$runLater$168(PlatformImpl.java:294)
>>> at
>>> com.sun.javafx.application.PlatformImpl$$Lambda$48/1364335809.run(Unknown
>>> Source)
>>> at
>>> com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
>>> Exception running application biz.dsuk.mavenimglib2fx.MainApp
>>> ============================================================
>>>
>>> If I remove the calls to the SCIO code and build and run from the
>>> command line, all works well.
>>>
>>> The SCIO source code that I am using is lifted/amended from one of the
>>> tutorials and is as follows:
>>>
>>> ============================================================
>>>             imagePath =
>>> "8bit-signed&pixelType=int8&lengths=50,50,3,5,7&axes=X,Y,Z,Channel,Time.fake";
>>>             System.out.println("Loading image... '" + imagePath + "'");
>>>             SCIFIO scifio = new SCIFIO();
>>>             final Reader reader =
>>> scifio.initializer().initializeReader(imagePath);
>>> ============================================================
>>>
>>> This source code works file in the SCIFIO tutorial.
>>>
>>> Any help gratefully appreciated!!!!!
>>>
>>> — Michael Ellis
>>>
>>>
>>>
>>>
>>> On 3 Dec 2014, at 19:31, Curtis Rueden <ctrueden at WISC.EDU> wrote:
>>>
>>> Hi Michael,
>>>
>>> > How do I establish what Maven projects I need to include?
>>>
>>> One way to check is using the dependency-maven-plugin like so:
>>>
>>>     mvn dependency:analyze
>>>
>>> This will tell you:
>>>
>>> A) Dependencies you declared but do not actually use; and
>>> B) Dependencies you did not declare directly, but actually need.
>>>
>>> Note that this will only work if your project compiles successfully. In
>>> other words, it is easier to start with "too many" dependencies and pare
>>> down, rather than trying to "build up" from zero.
>>>
>>> So in your case, you can start with the ImgLib2 Examples dependencies
>>> block, run dependency:analyze, and adjust the POM according to its
>>> recommendations.
>>>
>>> > When I go to my NetBeans project dependence, select Add dependency,
>>> > then type SCIF to the query text box, I get a huge list of
>>> > possibilities.
>>>
>>> The dependency you probably want is io.scif:scifio (i.e.: a groupId of
>>> io.scif, and an artifactId of scifio). Presumably at the latest version.
>>> You can search for that here:
>>>
>>>    http://maven.imagej.net/index.html#nexus-search;gav~io.scif~scifio~~~
>>>
>>> So your dependency block in this case would be:
>>>
>>>     <dependency>
>>>       <groupId>io.scif</groupId>
>>>       <artifactId>scifio</artifactId>
>>>       <version>0.17.1</version>
>>>     </dependency>
>>>
>>> Note that that block of XML is available for copy-pasting from the link
>>> above.
>>>
>>> > I am completely new to maven
>>>
>>> For more information, see:
>>>     http://imagej.net/Maven
>>>
>>> Regards,
>>> Curtis
>>>
>>> On Tue, Dec 2, 2014 at 6:05 PM, Michael Ellis <michael.ellis at dsuk.biz>
>>> wrote:
>>>
>>>> I am investigating the using ImgLib2 for a project.
>>>>
>>>> I am using NetBeans and have managed to create a NetBeans Mavern
>>>> project and have  added a dependency for ImgLib2 Core Library and that
>>>> seems to be working OK.
>>>>
>>>> I now want to add the least possible requirements for the purpose of
>>>> opening some image files.
>>>>
>>>> How do I establish what Maven projects I need to include?
>>>>
>>>> I have cloned  the ImgLib2 Examples project and got that working but
>>>> that seems to include all manner of things that I suspect I do not need.
>>>>
>>>> When I go to my NetBeans project dependence, select Add dependency,
>>>> then type SCIF to the query text box, I get a huge list of possibilities.
>>>>
>>>> I am completely new to maven and so do not know what I am doing with it!
>>>>
>>>> — Michael Ellis
>>>> Digital Scientific UK Ltd.
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> ImageJ-devel mailing list
>>>> ImageJ-devel at imagej.net
>>>> http://imagej.net/mailman/listinfo/imagej-devel
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> ImageJ-devel mailing list
>>> ImageJ-devel at imagej.net
>>> http://imagej.net/mailman/listinfo/imagej-devel
>>>
>>>
>>
>>
>> _______________________________________________
>> ImageJ-devel mailing list
>> ImageJ-devel at imagej.net
>> http://imagej.net/mailman/listinfo/imagej-devel
>>
>>
>
>
> _______________________________________________
> ImageJ-devel mailing list
> ImageJ-devel at imagej.net
> http://imagej.net/mailman/listinfo/imagej-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://imagej.net/pipermail/imagej-devel/attachments/20141205/a79d4c0c/attachment-0001.html>


More information about the ImageJ-devel mailing list