You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Stuart McCulloch (JIRA)" <ji...@apache.org> on 2007/08/23 11:04:30 UTC

[jira] Resolved: (FELIX-308) Add support for embedding dependency JAR files to bundle plugin

     [ https://issues.apache.org/jira/browse/FELIX-308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stuart McCulloch resolved FELIX-308.
------------------------------------

    Resolution: Fixed

OK, I've committed this patch... but without the update to bndlib,
because the recently uploaded 0.0.189 jar on central is corrupted.

-----------------------------------------------------------------------------------

The maven-bundle-plugin now accepts the following new instruction:

    <Embed-Dependency>dependencies</Embed-Dependency>

where:

    dependencies ::= clause ( ',' clause ) *
    clause ::= MATCH ( ';' attr '=' MATCH | ';inline=true' )
    attr ::= 'groupId' | 'artifactId' | 'version' | 'scope' | 'type' | 'classifier'
    MATCH ::= <globbed regular expressions> 

some examples:

    <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>

    <Embed-Dependency>junit;scope=test</Embed-Dependency>

    <Embed-Dependency>aopalliance;scope=!test;inline=true</Embed-Dependency>

-----------------------------------------------------------------------------------

by default matched dependencies are embedded in the bundle under:

    groupId/artifactId-version.jar

this behaviour can be modified using the following instructions:

    <Embed-StripGroup>true</Embed-StripGroup>

removes the version from the file (ie. groupId/artifactId.jar)

    <Embed-StripVersion>true</Embed-StripVersion>

removes the groupId subdirectory (ie. artifactId-version.jar)

    <Embed-Directory>directory</Embed-Directory>

adds a subdirectory (ie. deps/groupId/artifactId-version.jar)

-----------------------------------------------------------------------------------

normally the plugin only checks direct dependencies, but this can be changed
to include the complete set of transitive dependencies with the following option:

    <Embed-Transitive>true</Embed-Transitive>

-----------------------------------------------------------------------------------

if you want a dependency inlined instead of embedded add this clause:

    ;inline=true

for example:

    <Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>

will inline any compile or runtime dependencies

-----------------------------------------------------------------------------------


> Add support for embedding dependency JAR files to bundle plugin
> ---------------------------------------------------------------
>
>                 Key: FELIX-308
>                 URL: https://issues.apache.org/jira/browse/FELIX-308
>             Project: Felix
>          Issue Type: New Feature
>          Components: Maven Bundle Plugin
>            Reporter: Richard S. Hall
>            Assignee: Stuart McCulloch
>         Attachments: FELIX_308_EMBED_SUPPORT_20070803.txt, FELIX_308_EMBED_SUPPORT_20070806.txt, FELIX_308_EMBED_SUPPORT_20070822.txt
>
>
> The following is a proposal for how to support embedding dependency JAR files in the bundle plugin. The general approach is a slightly modified version of a proposal by Peter Kriens. The idea is to add a mechanism to deal with embedding JARs that is very similar to how the old maven plugin worked, but doing it in a slightly more generic way than the old plugin by adding the following instruction:
>     embed-dependency        ::= clause ( ',' clause ) *
>     clause                  ::= MATCH ( ';' attr '=' MATCH )
>     attr                    ::= 'groupId' | 'artifactId' | 'version' | 'scope'
>     MATCH                   ::= <globbed regular expressions>
> This instruction would be used to match the specified Maven dependencies for embedding. Any matching dependency would have its JAR file embedded onto the resulting bundle JAR file and it would be appended to the Bundle-ClassPath header after ".".
> This would allow people to easily achieve the same behavior as the old plugin by simply doing:
>     <embed-dependency>*;scope=compile|runtime</embed-dependency>
> Thus, this instruction would automatically embed any maven dependencies that were of scope "compile" or "runtime" and append them to the bundle class path.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.