Hello users@,
I am looking to dynamically load JAR's during a program execution based
upon a users input and therefore using the maven-dependency-plugin to do
this.
Specifically, the plugin configuration looks as follows

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.apache.any23.plugins</groupId>
                  <artifactId>apache-any23-openie</artifactId>
                  <version>${project.version}</version>
                  <outputDirectory>${output.directory}</outputDirectory>
                </artifactItem>
...
This works fine, however I have an issue with regards to these specific
JARs being present on the classpath during the build and runtime depending
on the </scope> I assign to them within the dependency definition.
If I mark the scope as 'runtime', the dependencies are added to the normal
classpath which I do not want, as the purpose here is dynamic classloading
via user input.
On the other hand, if I define the dependency scope as 'provided' then no
transitive dependencies are acquired hence I encounter
java.lang.NoClassDefFoundError as although the primary dependency is
present, it's own dependencies are not.

Does anyone have a way to get around this. Ideally I am looking for a
solution to define a specific location I was dependencies (and the
transitive dependencies) to reside such that I can load them dynamically at
runtime.
Thank you kindly in advance,
Lewis

-- 
http://home.apache.org/~lewismc/
http://people.apache.org/keys/committer/lewismc

Reply via email to