You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by nicolas de loof <ni...@apache.org> on 2008/03/21 11:51:29 UTC

[assembly] howto include a jar from my local repository ?

Hello,

for packaging purpose I need to include the Oracle driver in a "/lib" folder
of my dist tar.gz (created by the assembly plugin)
My web application declares this dependency as provided, so it is not
included in WEB-INF/lib

I tried to setup a <file> with ${settings.localRepository} as a path, but
the variable isn't resolved to my repo.

Any idea ?

Nico.

Re: [assembly] howto include a jar from my local repository ?

Posted by nicolas de loof <ni...@apache.org>.
That's a nice solution, thanks !

Nicolas.

2008/3/21, Joshua ChaitinPollak <jp...@kivasystems.com>:
>
> What about this:
>
> add the oracle driver as a dependency of the parent pom, and then use
> a dependencySet to get it into the assembly, rather than the
> moduleSet. Other subprojects would then depend on the oracle driver as
> well, but I can think of one solution to that, there might be another
> simpler one:
>
> The 'uber-pom' that builds all your modules, and the parent pom of
> your projects don't have to be one and the same for the uber build to
> work, so you might be able to set the parent pom of the other projects
> (the ones that don't depend on oracle) to a different, new pom file.
>
> -Josh
>
>
> On Mar 21, 2008, at 9:48 AM, nicolas de loof wrote:
>
> > I also have tried this solution, using :
> >
> > <moduleSets>
> >    <moduleSet>
> >      <includes>
> >        <include>com.capgemini.map:map-jrules-webapp:war</include>
> >      </includes>
> >      <binaries>
> >        <unpack>false</unpack>
> >        <outputDirectory>lib</outputDirectory>
> >        <includes>
> >          <include>com.oracle:ojdbc14</include>
> >        </includes>
> >      </binaries>
> >    </moduleSet>
> >  </moduleSets>
> >
> > As my assembly runs at parent POM level (I need the EAR + some
> > bacths JAR in
> > the assembly) I need to use a moduleSet to get dependencies from my
> > webapp.
> >
> > Doting this creates the expected /lib with the orcale driver, but also
> > includes the .war
> >
> > A hack solution is to use <outputFileNameMapping> with a fixed name,
> > so that
> > the war gets overriden by the driver during packaging... ugly isn't
> > it ?
> >
> > Nicolas.
> >
> >
> > 2008/3/21, Joshua ChaitinPollak <jp...@kivasystems.com>:
> >>
> >> Have you tried something like this in your assembly description:
> >>
> >>     <dependencySets>
> >>         <dependencySet>
> >>             <outputDirectory>lib</outputDirectory>
> >>             <excludes>
> >>                 <exclude>javax.servlet:jstl</exclude>
> >>             </excludes>
> >>         </dependencySet>
> >>     </dependencySets>
> >>
> >> This takes all of our projects dependencies except the
> >> java.servlet:jstl and puts them in the lib directory. You can create
> >> an arbitrary number of dependencySets to put some dependencies in one
> >> place, and others in another.
> >>
> >> If you aren't using a custom assembly descriptor, you'll need to use
> >> one, and put this in your pom:
> >>
> >>             <plugin>
> >>                 <groupId>org.apache.maven.plugins</groupId>
> >>                 <artifactId>maven-assembly-plugin</artifactId>
> >>                 <version>2.2-beta-1</version>
> >>                 <configuration>
> >>                     <descriptors>
> >>                         <descriptor>src/assembly/assembly.xml</
> >> descriptor>
> >>                     </descriptors>
> >>                 </configuration>
> >>             </plugin>
> >>
> >> -Josh
> >>
> >>
> >> On Mar 21, 2008, at 9:25 AM, nicolas de loof wrote:
> >>
> >>> Seems you misunderstood my issue :
> >>>
> >>> the orcale driver is deployed in my corporate repo, my webapp has a
> >>> dependency on it (we use com.oracle.Blob  object), but is set as
> >>> provided as
> >>> the jndi DataSource is created by the J2EE server
> >>>
> >>> To respect my customer packaging, I need to provided both the EAR
> >>> and the
> >>> jars that must be added to the server classpath (-> $TOMCAT_HOME/
> >>> lib ).
> >>>
> >>> I've not found a way to include the jar in my assembly by picking it
> >>> from my
> >>> local repository.
> >>>
> >>> Nicolas.
> >>>
> >>> 2008/3/21, Heinrich Nirschl <he...@gmail.com>:
> >>>>
> >>>> On Fri, Mar 21, 2008 at 11:51 AM, nicolas de loof
> >>>> <ni...@apache.org>
> >>>> wrote:
> >>>>> Hello,
> >>>>>
> >>>>> for packaging purpose I need to include the Oracle driver in a "/
> >>>>> lib"
> >>>> folder
> >>>>> of my dist tar.gz (created by the assembly plugin)
> >>>>> My web application declares this dependency as provided, so it is
> >>>>> not
> >>>>> included in WEB-INF/lib
> >>>>>
> >>>>> I tried to setup a <file> with ${settings.localRepository} as a
> >>>>> path,
> >>>> but
> >>>>> the variable isn't resolved to my repo.
> >>>>>
> >>>>> Any idea ?
> >>>>>
> >>>>> Nico.
> >>>>>
> >>>>
> >>>>
> >>>> Install the driver in your repo and don't declare it as provided
> >>>> but
> >>>> as a normal dependency.
> >>>>
> >>>> Henry.
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> >>>> For additional commands, e-mail: users-help@maven.apache.org
> >>>>
> >>>>
> >>
> >>
> >> --
> >> Joshua ChaitinPollak | Software Engineer
> >> Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970
> >>
> >>
> >>
> >>
> >>
> >>
> >>
>
>
> --
>
> Joshua ChaitinPollak | Software Engineer
> Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970
>
>
>
>
>
>
>

Re: [assembly] howto include a jar from my local repository ?

Posted by Joshua ChaitinPollak <jp...@kivasystems.com>.
What about this:

add the oracle driver as a dependency of the parent pom, and then use  
a dependencySet to get it into the assembly, rather than the  
moduleSet. Other subprojects would then depend on the oracle driver as  
well, but I can think of one solution to that, there might be another  
simpler one:

The 'uber-pom' that builds all your modules, and the parent pom of  
your projects don't have to be one and the same for the uber build to  
work, so you might be able to set the parent pom of the other projects  
(the ones that don't depend on oracle) to a different, new pom file.

-Josh

On Mar 21, 2008, at 9:48 AM, nicolas de loof wrote:

> I also have tried this solution, using :
>
> <moduleSets>
>    <moduleSet>
>      <includes>
>        <include>com.capgemini.map:map-jrules-webapp:war</include>
>      </includes>
>      <binaries>
>        <unpack>false</unpack>
>        <outputDirectory>lib</outputDirectory>
>        <includes>
>          <include>com.oracle:ojdbc14</include>
>        </includes>
>      </binaries>
>    </moduleSet>
>  </moduleSets>
>
> As my assembly runs at parent POM level (I need the EAR + some  
> bacths JAR in
> the assembly) I need to use a moduleSet to get dependencies from my  
> webapp.
>
> Doting this creates the expected /lib with the orcale driver, but also
> includes the .war
>
> A hack solution is to use <outputFileNameMapping> with a fixed name,  
> so that
> the war gets overriden by the driver during packaging... ugly isn't  
> it ?
>
> Nicolas.
>
>
> 2008/3/21, Joshua ChaitinPollak <jp...@kivasystems.com>:
>>
>> Have you tried something like this in your assembly description:
>>
>>     <dependencySets>
>>         <dependencySet>
>>             <outputDirectory>lib</outputDirectory>
>>             <excludes>
>>                 <exclude>javax.servlet:jstl</exclude>
>>             </excludes>
>>         </dependencySet>
>>     </dependencySets>
>>
>> This takes all of our projects dependencies except the
>> java.servlet:jstl and puts them in the lib directory. You can create
>> an arbitrary number of dependencySets to put some dependencies in one
>> place, and others in another.
>>
>> If you aren't using a custom assembly descriptor, you'll need to use
>> one, and put this in your pom:
>>
>>             <plugin>
>>                 <groupId>org.apache.maven.plugins</groupId>
>>                 <artifactId>maven-assembly-plugin</artifactId>
>>                 <version>2.2-beta-1</version>
>>                 <configuration>
>>                     <descriptors>
>>                         <descriptor>src/assembly/assembly.xml</
>> descriptor>
>>                     </descriptors>
>>                 </configuration>
>>             </plugin>
>>
>> -Josh
>>
>>
>> On Mar 21, 2008, at 9:25 AM, nicolas de loof wrote:
>>
>>> Seems you misunderstood my issue :
>>>
>>> the orcale driver is deployed in my corporate repo, my webapp has a
>>> dependency on it (we use com.oracle.Blob  object), but is set as
>>> provided as
>>> the jndi DataSource is created by the J2EE server
>>>
>>> To respect my customer packaging, I need to provided both the EAR
>>> and the
>>> jars that must be added to the server classpath (-> $TOMCAT_HOME/
>>> lib ).
>>>
>>> I've not found a way to include the jar in my assembly by picking it
>>> from my
>>> local repository.
>>>
>>> Nicolas.
>>>
>>> 2008/3/21, Heinrich Nirschl <he...@gmail.com>:
>>>>
>>>> On Fri, Mar 21, 2008 at 11:51 AM, nicolas de loof
>>>> <ni...@apache.org>
>>>> wrote:
>>>>> Hello,
>>>>>
>>>>> for packaging purpose I need to include the Oracle driver in a "/
>>>>> lib"
>>>> folder
>>>>> of my dist tar.gz (created by the assembly plugin)
>>>>> My web application declares this dependency as provided, so it is
>>>>> not
>>>>> included in WEB-INF/lib
>>>>>
>>>>> I tried to setup a <file> with ${settings.localRepository} as a
>>>>> path,
>>>> but
>>>>> the variable isn't resolved to my repo.
>>>>>
>>>>> Any idea ?
>>>>>
>>>>> Nico.
>>>>>
>>>>
>>>>
>>>> Install the driver in your repo and don't declare it as provided  
>>>> but
>>>> as a normal dependency.
>>>>
>>>> Henry.
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>
>>>>
>>
>>
>> --
>> Joshua ChaitinPollak | Software Engineer
>> Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970
>>
>>
>>
>>
>>
>>
>>

-- 
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970







Re: [assembly] howto include a jar from my local repository ?

Posted by nicolas de loof <ni...@apache.org>.
I also have tried this solution, using :

<moduleSets>
    <moduleSet>
      <includes>
        <include>com.capgemini.map:map-jrules-webapp:war</include>
      </includes>
      <binaries>
        <unpack>false</unpack>
        <outputDirectory>lib</outputDirectory>
        <includes>
          <include>com.oracle:ojdbc14</include>
        </includes>
      </binaries>
    </moduleSet>
  </moduleSets>

As my assembly runs at parent POM level (I need the EAR + some bacths JAR in
the assembly) I need to use a moduleSet to get dependencies from my webapp.

Doting this creates the expected /lib with the orcale driver, but also
includes the .war

A hack solution is to use <outputFileNameMapping> with a fixed name, so that
the war gets overriden by the driver during packaging... ugly isn't it ?

Nicolas.


2008/3/21, Joshua ChaitinPollak <jp...@kivasystems.com>:
>
> Have you tried something like this in your assembly description:
>
>      <dependencySets>
>          <dependencySet>
>              <outputDirectory>lib</outputDirectory>
>              <excludes>
>                  <exclude>javax.servlet:jstl</exclude>
>              </excludes>
>          </dependencySet>
>      </dependencySets>
>
> This takes all of our projects dependencies except the
> java.servlet:jstl and puts them in the lib directory. You can create
> an arbitrary number of dependencySets to put some dependencies in one
> place, and others in another.
>
> If you aren't using a custom assembly descriptor, you'll need to use
> one, and put this in your pom:
>
>              <plugin>
>                  <groupId>org.apache.maven.plugins</groupId>
>                  <artifactId>maven-assembly-plugin</artifactId>
>                  <version>2.2-beta-1</version>
>                  <configuration>
>                      <descriptors>
>                          <descriptor>src/assembly/assembly.xml</
> descriptor>
>                      </descriptors>
>                  </configuration>
>              </plugin>
>
> -Josh
>
>
> On Mar 21, 2008, at 9:25 AM, nicolas de loof wrote:
>
> > Seems you misunderstood my issue :
> >
> > the orcale driver is deployed in my corporate repo, my webapp has a
> > dependency on it (we use com.oracle.Blob  object), but is set as
> > provided as
> > the jndi DataSource is created by the J2EE server
> >
> > To respect my customer packaging, I need to provided both the EAR
> > and the
> > jars that must be added to the server classpath (-> $TOMCAT_HOME/
> > lib ).
> >
> > I've not found a way to include the jar in my assembly by picking it
> > from my
> > local repository.
> >
> > Nicolas.
> >
> > 2008/3/21, Heinrich Nirschl <he...@gmail.com>:
> >>
> >> On Fri, Mar 21, 2008 at 11:51 AM, nicolas de loof
> >> <ni...@apache.org>
> >> wrote:
> >>> Hello,
> >>>
> >>> for packaging purpose I need to include the Oracle driver in a "/
> >>> lib"
> >> folder
> >>> of my dist tar.gz (created by the assembly plugin)
> >>> My web application declares this dependency as provided, so it is
> >>> not
> >>> included in WEB-INF/lib
> >>>
> >>> I tried to setup a <file> with ${settings.localRepository} as a
> >>> path,
> >> but
> >>> the variable isn't resolved to my repo.
> >>>
> >>> Any idea ?
> >>>
> >>> Nico.
> >>>
> >>
> >>
> >> Install the driver in your repo and don't declare it as provided but
> >> as a normal dependency.
> >>
> >> Henry.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> >> For additional commands, e-mail: users-help@maven.apache.org
> >>
> >>
>
>
> --
> Joshua ChaitinPollak | Software Engineer
> Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970
>
>
>
>
>
>
>

Re: [assembly] howto include a jar from my local repository ?

Posted by Joshua ChaitinPollak <jp...@kivasystems.com>.
Have you tried something like this in your assembly description:

     <dependencySets>
         <dependencySet>
             <outputDirectory>lib</outputDirectory>
             <excludes>
                 <exclude>javax.servlet:jstl</exclude>
             </excludes>
         </dependencySet>
     </dependencySets>

This takes all of our projects dependencies except the  
java.servlet:jstl and puts them in the lib directory. You can create  
an arbitrary number of dependencySets to put some dependencies in one  
place, and others in another.

If you aren't using a custom assembly descriptor, you'll need to use  
one, and put this in your pom:

             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
                 <version>2.2-beta-1</version>
                 <configuration>
                     <descriptors>
                         <descriptor>src/assembly/assembly.xml</ 
descriptor>
                     </descriptors>
                 </configuration>
             </plugin>

-Josh

On Mar 21, 2008, at 9:25 AM, nicolas de loof wrote:

> Seems you misunderstood my issue :
>
> the orcale driver is deployed in my corporate repo, my webapp has a
> dependency on it (we use com.oracle.Blob  object), but is set as  
> provided as
> the jndi DataSource is created by the J2EE server
>
> To respect my customer packaging, I need to provided both the EAR  
> and the
> jars that must be added to the server classpath (-> $TOMCAT_HOME/ 
> lib ).
>
> I've not found a way to include the jar in my assembly by picking it  
> from my
> local repository.
>
> Nicolas.
>
> 2008/3/21, Heinrich Nirschl <he...@gmail.com>:
>>
>> On Fri, Mar 21, 2008 at 11:51 AM, nicolas de loof  
>> <ni...@apache.org>
>> wrote:
>>> Hello,
>>>
>>> for packaging purpose I need to include the Oracle driver in a "/ 
>>> lib"
>> folder
>>> of my dist tar.gz (created by the assembly plugin)
>>> My web application declares this dependency as provided, so it is  
>>> not
>>> included in WEB-INF/lib
>>>
>>> I tried to setup a <file> with ${settings.localRepository} as a  
>>> path,
>> but
>>> the variable isn't resolved to my repo.
>>>
>>> Any idea ?
>>>
>>> Nico.
>>>
>>
>>
>> Install the driver in your repo and don't declare it as provided but
>> as a normal dependency.
>>
>> Henry.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>

-- 
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970







Re: [assembly] howto include a jar from my local repository ?

Posted by nicolas de loof <ni...@apache.org>.
Seems you misunderstood my issue :

the orcale driver is deployed in my corporate repo, my webapp has a
dependency on it (we use com.oracle.Blob  object), but is set as provided as
the jndi DataSource is created by the J2EE server

To respect my customer packaging, I need to provided both the EAR and the
jars that must be added to the server classpath (-> $TOMCAT_HOME/lib ).

I've not found a way to include the jar in my assembly by picking it from my
local repository.

Nicolas.

2008/3/21, Heinrich Nirschl <he...@gmail.com>:
>
> On Fri, Mar 21, 2008 at 11:51 AM, nicolas de loof <ni...@apache.org>
> wrote:
> > Hello,
> >
> >  for packaging purpose I need to include the Oracle driver in a "/lib"
> folder
> >  of my dist tar.gz (created by the assembly plugin)
> >  My web application declares this dependency as provided, so it is not
> >  included in WEB-INF/lib
> >
> >  I tried to setup a <file> with ${settings.localRepository} as a path,
> but
> >  the variable isn't resolved to my repo.
> >
> >  Any idea ?
> >
> >  Nico.
> >
>
>
> Install the driver in your repo and don't declare it as provided but
> as a normal dependency.
>
> Henry.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

Re: [assembly] howto include a jar from my local repository ?

Posted by Heinrich Nirschl <he...@gmail.com>.
On Fri, Mar 21, 2008 at 11:51 AM, nicolas de loof <ni...@apache.org> wrote:
> Hello,
>
>  for packaging purpose I need to include the Oracle driver in a "/lib" folder
>  of my dist tar.gz (created by the assembly plugin)
>  My web application declares this dependency as provided, so it is not
>  included in WEB-INF/lib
>
>  I tried to setup a <file> with ${settings.localRepository} as a path, but
>  the variable isn't resolved to my repo.
>
>  Any idea ?
>
>  Nico.
>

Install the driver in your repo and don't declare it as provided but
as a normal dependency.

Henry.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org