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

Reply via email to