I'm lost with this DLL business... What pains me the most is that I'm sure it's quite the trivial thing to do, but I can't seem to figure it out... Mikel
On Tue, Jun 17, 2008 at 15:31, Mikel Cármenes Cavia <[EMAIL PROTECTED]> wrote: > Kalle, > I have made sure to carefully deploy the dll's to my repository, with the > appropriate packaging parameters and all. Initially I was using mvn > install:install-file, I now use mvn deploy:deploy-file, and when I look > inside the repository, it all seems to be there, and it looks to be correct. > > The problem I am having is still at the packaging stage, with the error > handling file set... and the PlexusIoResourceCollection not found. > > This is the same error I had before. It also says no such archiver "dll". > Does my pom look good to you? (I don't wanna clutter pasting it all again, > the pom and error are in the previous message). > > Thanks for your help. > > Mikel > > On Tue, Jun 17, 2008 at 15:14, Kalle Korhonen <[EMAIL PROTECTED]> > wrote: > >> I'm guessing you didn't install the dll with the packaging type "dll" (use >> -Dpackaging=dll, the default is jar - >> http://maven.apache.org/plugins/maven-deploy-plugin/usage.html). Check >> your >> local repository and the pom for the dll. Regarding your earlier question, >> you sure can package it into a jar and JNA's supposed to extract it out >> from the jar automatically if not found on library path but that was >> exactly >> your original problem: either it wasn't working or java.library.path >> wasn't >> set properly. Even with JNA, it's recommended practice to have the library >> in an accessible location on the system ( >> >> https://jna.dev.java.net/javadoc/com/sun/jna/Native.html#loadLibrary(java.lang.String,%20java.lang.Class) >> ) >> >> Kalle >> >> >> On Tue, Jun 17, 2008 at 10:23 AM, Mikel Cármenes Cavia <[EMAIL PROTECTED]> >> wrote: >> >> > I have followed the steps, and I am now getting the following error >> message >> > when I try to package my project: >> > >> > [INFO] >> > ------------------------------------------------------------------------ >> > [ERROR] BUILD ERROR >> > [INFO] >> > ------------------------------------------------------------------------ >> > [INFO] Failed to create assembly: Error adding file-set for >> > 'org.git.systems:Cur >> > vi:dll:1.0.0' to archive: Error adding archived file-set. >> > PlexusIoResourceCollec >> > tion not found for: C:\Documents and >> > Settings\Mikel\.m2\repository\org\git\syste >> > ms\Curvi\1.0.0\Curvi-1.0.0.dll >> > >> > No such archiver: 'dll'. >> > [INFO] >> > ------------------------------------------------------------------------ >> > [INFO] For more information, run Maven with the -e switch >> > [INFO] >> > ------------------------------------------------------------------------ >> > [INFO] Total time: 6 seconds >> > [INFO] Finished at: Tue Jun 17 14:18:20 ADT 2008 >> > [INFO] Final Memory: 12M/25M >> > [INFO] >> > ------------------------------------------------------------------------ >> > >> > Basically, I manually deployed the two dll's to Maven's repository (via >> mvn >> > install:install-file) and then made the following changes to my pom: >> > >> > ... >> > <dependency> >> > <groupId>org.git.systems</groupId> >> > <artifactId>Curvi</artifactId> >> > <version>1.0.0</version> >> > <scope>compile</scope> >> > <type>dll</type> >> > </dependency> >> > <dependency> >> > <groupId>org.git.systems</groupId> >> > <artifactId>OptimizedSolver</artifactId> >> > <version>1.0.0</version> >> > <scope>compile</scope> >> > <type>dll</type> >> > </dependency> >> > ... >> > >> > >> > ... >> > <plugin> >> > <groupId>org.apache.maven.plugins</groupId> >> > <artifactId>maven-dependency-plugin</artifactId> >> > <executions> >> > <execution> >> > <id>copy</id> >> > <phase>package</phase> >> > <goals> >> > <goal>copy</goal> >> > </goals> >> > <configuration> >> > <artifactItems> >> > <artifactItem> >> > <groupId>org.git.systems</groupId> >> > <artifactId>Curvi</artifactId> >> > <version>1.0.0</version> >> > <type>dll</type> >> > <overWrite>true</overWrite> >> > <outputDirectory>/testingDLL</outputDirectory> >> > <destFileName>Curvi</destFileName> >> > </artifactItem> >> > </artifactItems> >> > </configuration> >> > </execution> >> > </executions> >> > </plugin> >> > >> > </plugins> >> > >> > </build> >> > </project> >> > >> > >> > Is there something I did wrong along the process? >> > >> > Thanks, I can't wait to get this to work. >> > >> > >> > On Tue, Jun 17, 2008 at 08:12, Mikel Cármenes Cavia <[EMAIL PROTECTED]> >> > wrote: >> > >> > > I will give those steps a shot today and let you all know if I run >> into >> > any >> > > problems. It sounds like a pretty logical thing to do actually, and >> > > fortunately I do not require cross-platform compilation and support at >> > this >> > > point. >> > > One quick question though, when you say that I should use the >> dependency >> > > plugin to copy the DLL's to the target directory or other suitable >> > location, >> > > could I specify that the DLL's be put inside the jar? (that is, in the >> > > resources folder). >> > > >> > > Thanks! >> > > >> > > >> > > On Mon, Jun 16, 2008 at 15:37, Kalle Korhonen < >> > [EMAIL PROTECTED]> >> > > wrote: >> > > >> > >> If you don't need to worry about cross-platform compilation & support >> > (and >> > >> sounds like you don't), the most straight-forwarded way to do this is >> to >> > >> deploy your dll to a Maven repository with type "dll", declare a >> > >> straight-up >> > >> dependency to it in your pom and then use the dependency plugin to >> copy >> > >> the >> > >> lib to the target dir or other suitable location for development >> > >> environment >> > >> and structure you assembly (or whatever is the format of the actual >> > >> delivery) similarly. If cross-platform support is desired, nar plugin >> ( >> > >> http://java.freehep.org/freehep-nar-plugin/intro.html) is a bit more >> > >> involving but simplifies things greatly. However, using it requires >> some >> > >> code changes. >> > >> >> > >> Kalle >> > >> >> > >> >> > >> On Mon, Jun 16, 2008 at 11:19 AM, Mikel Cármenes Cavia < >> > [EMAIL PROTECTED]> >> > >> wrote: >> > >> >> > >> > Hey guys, >> > >> > I need to include three DLL's in my Maven project. Prior to >> deciding >> > to >> > >> > email the list, I have looked around the archives, and haven't been >> > able >> > >> to >> > >> > find anything that would seem to answer my problem (which is a very >> > easy >> > >> > one >> > >> > in nature). >> > >> > >> > >> > I use JNA to interface with two of the three DLL's (the third one >> is >> > for >> > >> > Jacob, and its location needs to be set as a system variable). >> > >> > >> > >> > In Java, I do the following: >> > >> > >> > >> > URL libURL = this.getClass().getResource("/org/git/systems/DLLs/"); >> > >> > System.setProperty("jna.library.path", libURL.getPath()); >> > >> > >> > >> > And then declare the following interface >> > >> > >> > >> > public interface CurviLibrary extends Library { >> > >> > CurviLibrary CurviInitialization = (CurviLibrary) >> > >> > Native.loadLibrary("Curvi",CurviLibrary.class); >> > >> > CurviLibrary OptimizedSolver = (CurviLibrary) >> > >> > Native.loadLibrary("OptimizedSolver",CurviLibrary.class); >> > >> > DoubleByReference GIT_CURVIG(float[] timeData, float[] rawData, >> > float[] >> > >> > relax, int rawDataSize, double alphaValue, >> > >> > long numberOfBins); >> > >> > } >> > >> > >> > >> > So when compiled via Eclipse, this works like a charm. I have tried >> > >> placing >> > >> > the DLL's within /main/resources/org/git/systems/DLLs but this does >> > not >> > >> > seem >> > >> > to work, as the jar looks in >> > >> > >> > >> > >> > >> >> > >> file:/C:/DEV/Maven/GITSYSTEMS/target/GITSYSTEMS-1.0-jar-with-dependencies.jar!/org/git/systems/DLLs/ >> > >> > which would make sense, if only a jar wasn't a package. >> > >> > >> > >> > How may I go about adding these DLLs to my Maven project, without >> > having >> > >> to >> > >> > modify the existing Java code? >> > >> > >> > >> > I am assuming they will have to go outside of the jar, but I am >> unsure >> > >> as >> > >> > to >> > >> > how to reference and go from there. >> > >> > >> > >> > Thanks guys! >> > >> > >> > >> >> > > >> > > >> > >> > >