Using "provide" as the instruction to include the jar does seem rather
ad hoc looking at the semantics. I would actually assume the opposite
at first reading and treat it as a bundle that will be installed in
the runtime env.

Kind regards,

     Peter Kriens
     
EE> On 12/5/06, Peter Kriens <[EMAIL PROTECTED]> wrote:
>> I am not a maven expert so maybe there are better ways to do it.
>>
>> I never understood "provided" to mean include? If that is the
>> definition I can automatically include them. Can someone point me to
>> the relevant literature?

EE> Neither am I, but it actually means exclude. From
EE> http://maven.apache.org/pom.html:

--- >>8 ---
EE> * scope: This element refers to the classpath of the task at hand
EE> (compiling and runtime, testing, etc.) as well as how to limit the
EE> transitivity of a depedency. There are five scopes available:
EE>     * compile - this is the default scope, used if none is specified.
EE> Compile dependencies are available in all classpaths.
EE>     * provided - this is much like compile, but indicates you expect
EE> the JDK or a container to provide it. It is only available on the
EE> compilation classpath, and is not transitive.
EE>     * runtime - this scope indicates that the dependency is not
EE> required for compilation, but is for execution. It is in the runtime
EE> and test classpaths, but not the compile classpath.
EE>     * test - this scope indicates that the dependency is not required
EE> for normal use of the application, and is only available for the test
EE> compilation and execution phases.
EE>     * system - this scope is similar to provided except that you have
EE> to provide the JAR which contains it explicitly. The artifact is
EE> always available and is not looked up in a repository.
--- >>8 ---

>>
>>
>> The <type>bundle</type> is required by maven as far as I know, as is
>> the messy plugin setup. If you know a better way let me know.

EE> Unfortunately, I'm even less of an expert on Maven than I am on OSGi.
EE> I just want stuff to work so I can build apps. :) But this is an
EE> Apache list, I'm sure others can chime in!

EE> What I meant in my previous mail was that I don't understand why the
EE> plugin needs to know the <type> of the dependencies. It's an
EE> OSGi-aware plugin... just have a peek in the jar file and figure it
EE> out? If it is, then generate Import-Package, if not then embed or
EE> inline it. Would work nicely. But maybe there's some Maven core <->
EE> Maven plugin interaction going on there that I'm missing. In either
EE> case, this would be nice-to-have functionality but it's not a
EE> showstopper for us.

EE> [snip]
>> Inlining or Bundle-Classpath both make no difference for the
>> Import-Package. The import header is calculated from the
>> references from all the classes on the Bundle-Classpath.

EE> Here's where I don't get it. Let's go back to the simple original
EE> example with my one-class bundle which depended on commons-logging. If
EE> the plugin would embed or inline the commons-logging jar AND generate
EE> Import-Package statements... that would break when we load it into the
EE> OSGi framework, right? No other bundle will export commons-logging
EE> stuff and, moreover, even if there is I want my bundle to use the
EE> embedded stuff like I said in my POM. This is the core of the issue,
EE> as I see it.

EE> Cheers,

EE> -EE

-- 
Peter Kriens                              Tel +33467542167
9C, Avenue St. Drézéry                    AOL,Yahoo: pkriens
34160 Beaulieu, France                    ICQ 255570717
Skype pkriens                             Fax +1 8153772599

Reply via email to