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! >> > >> > >