build dependencies

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

build dependencies

eppleton
Hi all,

I'm just starting to move my local builds to hudson, and I would like to
know what is the best way to handle library dependencies. I have two ant
based free-style software projects a and b, both java libraries.
Building them independently works fine.

Both projects belong to a larger project and b depends on the jar that
results from build a. I would like to trigger build b when build a has
finished. Could you tell me how I can reference the a.jar file produced
by the build in project b's build? Can I rely on rely on relative paths
to indicate the location of the jar, and if so, how are the workspace
directories organized relative to one another?

best regards,
Toni

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Stephan Zeissler (KUTTIG)
Paths look like:
<hudson_home>/jobs/<jobname>/lastSuccessfull/<checkoutname>/ for
successfull builds (lastSuccessfull is a softlink on linux).

Your current build takes place in a path like
<hudson>/jobs/<jobname>/workspaces/<checkout>/

So, if you build your a.jar in a folder named deploy, you can e.g. use
../../../ProjectA/lastSuccessfull/trunk/deploy/A.jar to access it from
projekt B.



Stephan

Toni Epple schrieb:

> Hi all,
>
> I'm just starting to move my local builds to hudson, and I would like
> to know what is the best way to handle library dependencies. I have
> two ant based free-style software projects a and b, both java
> libraries. Building them independently works fine.
>
> Both projects belong to a larger project and b depends on the jar that
> results from build a. I would like to trigger build b when build a has
> finished. Could you tell me how I can reference the a.jar file
> produced by the build in project b's build? Can I rely on rely on
> relative paths to indicate the location of the jar, and if so, how are
> the workspace directories organized relative to one another?
>
> best regards,
> Toni
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
--
Stephan Zeissler
Software-Development

KUTTIG Computeranwendungen GmbH
Frankfurter Straße 35
53840 Troisdorf
MOB +49 (173) 7207900
FON +49 (2241) 9833-413
FAX +49 (2241) 9833-100
EMAIL [hidden email]
WEB www.kuttig.com
GF Dipl.-Kfm. Klaus Kuttig
Michael Wessels
HR Siegburg Nr 2848


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

stephan.zeissler.vcf (307 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Sven Reimers
Hi Toni,

perhaps you should think about something like ivy for managing your
dependencies (upload binaries and fetch last builds, maven lite).

-Sven


On 8/9/07, Stephan Zeissler (KUTTIG) <[hidden email]> wrote:

> Paths look like:
> <hudson_home>/jobs/<jobname>/lastSuccessfull/<checkoutname>/ for
> successfull builds (lastSuccessfull is a softlink on linux).
>
> Your current build takes place in a path like
> <hudson>/jobs/<jobname>/workspaces/<checkout>/
>
> So, if you build your a.jar in a folder named deploy, you can e.g. use
> ../../../ProjectA/lastSuccessfull/trunk/deploy/A.jar to access it from
> projekt B.
>
>
>
> Stephan
>
> Toni Epple schrieb:
> > Hi all,
> >
> > I'm just starting to move my local builds to hudson, and I would like
> > to know what is the best way to handle library dependencies. I have
> > two ant based free-style software projects a and b, both java
> > libraries. Building them independently works fine.
> >
> > Both projects belong to a larger project and b depends on the jar that
> > results from build a. I would like to trigger build b when build a has
> > finished. Could you tell me how I can reference the a.jar file
> > produced by the build in project b's build? Can I rely on rely on
> > relative paths to indicate the location of the jar, and if so, how are
> > the workspace directories organized relative to one another?
> >
> > best regards,
> > Toni
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
>
> --
> Stephan Zeissler
> Software-Development
>
> KUTTIG Computeranwendungen GmbH
> Frankfurter Straße 35
> 53840 Troisdorf
> MOB +49 (173) 7207900
> FON +49 (2241) 9833-413
> FAX +49 (2241) 9833-100
> EMAIL [hidden email]
> WEB www.kuttig.com
> GF Dipl.-Kfm. Klaus Kuttig
> Michael Wessels
> HR Siegburg Nr 2848
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Bradley Beddoes
Hi,
IVY is quite excellent for this situation, you could have the end of
your build process publish the artifact to local disk and then have Ivy
for process B pick that up and use it.

This is exactly the way we handle the situation with some 12
interdependent sub projects

http://incubator.apache.org/ivy/

--
Bradley Beddoes
Lead Software Architect
Intient

http://intient.com - "Building intelligent open source solutions for
your enterprise"

Sven Reimers wrote:

> Hi Toni,
>
> perhaps you should think about something like ivy for managing your
> dependencies (upload binaries and fetch last builds, maven lite).
>
> -Sven
>
>
> On 8/9/07, Stephan Zeissler (KUTTIG) <[hidden email]> wrote:
>> Paths look like:
>> <hudson_home>/jobs/<jobname>/lastSuccessfull/<checkoutname>/ for
>> successfull builds (lastSuccessfull is a softlink on linux).
>>
>> Your current build takes place in a path like
>> <hudson>/jobs/<jobname>/workspaces/<checkout>/
>>
>> So, if you build your a.jar in a folder named deploy, you can e.g. use
>> ../../../ProjectA/lastSuccessfull/trunk/deploy/A.jar to access it from
>> projekt B.
>>
>>
>>
>> Stephan
>>
>> Toni Epple schrieb:
>>> Hi all,
>>>
>>> I'm just starting to move my local builds to hudson, and I would like
>>> to know what is the best way to handle library dependencies. I have
>>> two ant based free-style software projects a and b, both java
>>> libraries. Building them independently works fine.
>>>
>>> Both projects belong to a larger project and b depends on the jar that
>>> results from build a. I would like to trigger build b when build a has
>>> finished. Could you tell me how I can reference the a.jar file
>>> produced by the build in project b's build? Can I rely on rely on
>>> relative paths to indicate the location of the jar, and if so, how are
>>> the workspace directories organized relative to one another?
>>>
>>> best regards,
>>> Toni
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>> --
>> Stephan Zeissler
>> Software-Development
>>
>> KUTTIG Computeranwendungen GmbH
>> Frankfurter Straße 35
>> 53840 Troisdorf
>> MOB +49 (173) 7207900
>> FON +49 (2241) 9833-413
>> FAX +49 (2241) 9833-100
>> EMAIL [hidden email]
>> WEB www.kuttig.com
>> GF Dipl.-Kfm. Klaus Kuttig
>> Michael Wessels
>> HR Siegburg Nr 2848
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

eppleton
In reply to this post by Sven Reimers
Sven and Bradley,

thanks for your answers! I'll have a look at Ivy.

Toni

Sven Reimers wrote:

> Hi Toni,
>
> perhaps you should think about something like ivy for managing your
> dependencies (upload binaries and fetch last builds, maven lite).
>
> -Sven
>
>
> On 8/9/07, Stephan Zeissler (KUTTIG) <[hidden email]> wrote:
>  
>> Paths look like:
>> <hudson_home>/jobs/<jobname>/lastSuccessfull/<checkoutname>/ for
>> successfull builds (lastSuccessfull is a softlink on linux).
>>
>> Your current build takes place in a path like
>> <hudson>/jobs/<jobname>/workspaces/<checkout>/
>>
>> So, if you build your a.jar in a folder named deploy, you can e.g. use
>> ../../../ProjectA/lastSuccessfull/trunk/deploy/A.jar to access it from
>> projekt B.
>>
>>
>>
>> Stephan
>>
>> Toni Epple schrieb:
>>    
>>> Hi all,
>>>
>>> I'm just starting to move my local builds to hudson, and I would like
>>> to know what is the best way to handle library dependencies. I have
>>> two ant based free-style software projects a and b, both java
>>> libraries. Building them independently works fine.
>>>
>>> Both projects belong to a larger project and b depends on the jar that
>>> results from build a. I would like to trigger build b when build a has
>>> finished. Could you tell me how I can reference the a.jar file
>>> produced by the build in project b's build? Can I rely on rely on
>>> relative paths to indicate the location of the jar, and if so, how are
>>> the workspace directories organized relative to one another?
>>>
>>> best regards,
>>> Toni
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>      
>> --
>> Stephan Zeissler
>> Software-Development
>>
>> KUTTIG Computeranwendungen GmbH
>> Frankfurter Straße 35
>> 53840 Troisdorf
>> MOB +49 (173) 7207900
>> FON +49 (2241) 9833-413
>> FAX +49 (2241) 9833-100
>> EMAIL [hidden email]
>> WEB www.kuttig.com
>> GF Dipl.-Kfm. Klaus Kuttig
>> Michael Wessels
>> HR Siegburg Nr 2848
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>>    
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>  

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

eppleton
In reply to this post by Stephan Zeissler (KUTTIG)
Hi Stephan,

thanks a lot! I will try it like this and also have a look at Ivy to see
what works best for me.

best regards,
Toni

Stephan Zeissler (KUTTIG) wrote:

> Paths look like:
> <hudson_home>/jobs/<jobname>/lastSuccessfull/<checkoutname>/ for
> successfull builds (lastSuccessfull is a softlink on linux).
>
> Your current build takes place in a path like
> <hudson>/jobs/<jobname>/workspaces/<checkout>/
>
> So, if you build your a.jar in a folder named deploy, you can e.g. use
> ../../../ProjectA/lastSuccessfull/trunk/deploy/A.jar to access it from
> projekt B.
>
>
>
> Stephan
>
> Toni Epple schrieb:
>> Hi all,
>>
>> I'm just starting to move my local builds to hudson, and I would like
>> to know what is the best way to handle library dependencies. I have
>> two ant based free-style software projects a and b, both java
>> libraries. Building them independently works fine.
>>
>> Both projects belong to a larger project and b depends on the jar
>> that results from build a. I would like to trigger build b when build
>> a has finished. Could you tell me how I can reference the a.jar file
>> produced by the build in project b's build? Can I rely on rely on
>> relative paths to indicate the location of the jar, and if so, how
>> are the workspace directories organized relative to one another?
>>
>> best regards,
>> Toni
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Jesse Glick
In reply to this post by Stephan Zeissler (KUTTIG)
Stephan Zeissler (KUTTIG) wrote:
> <hudson_home>/jobs/<jobname>/lastSuccessfull/<checkoutname>/ for
> successfull builds (lastSuccessfull is a softlink on linux).
> .../../../ProjectA/lastSuccessfull/trunk/deploy/A.jar to access it from

I guess that should be 'lastSuccessful'. (Ends in one 'l' only,
confusingly even for native speakers!)

-J.

--
[hidden email]  netbeans.org  ant.apache.org  hudson.dev.java.net
             http://google.com/search?q=e%5E%28pi*i%29%2B1

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Kohsuke Kawaguchi
Administrator
In reply to this post by Bradley Beddoes
Bradley Beddoes wrote:
> Hi,
> IVY is quite excellent for this situation, you could have the end of
> your build process publish the artifact to local disk and then have Ivy
> for process B pick that up and use it.
>
> This is exactly the way we handle the situation with some 12
> interdependent sub projects
>
> http://incubator.apache.org/ivy/

I was wondering if there can be any opportunity for Hudson Ivy plugin. I
don't have much experience with Ivy, but perhaps can you think of any?

--
Kohsuke Kawaguchi
Sun Microsystems                   [hidden email]

smime.p7s (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Jean-Baptiste Quenot
* Kohsuke Kawaguchi:

> Bradley Beddoes wrote:
>
> > Hi, IVY is quite excellent  for this situation, you could have
> > the end  of your build  process publish the artifact  to local
> > disk and then have Ivy for process  B pick that up and use it.
> > This is exactly  the way we handle the situation  with some 12
> > interdependent sub projects http://incubator.apache.org/ivy/
>
> I was wondering  if there can be any opportunity  for Hudson Ivy
> plugin. I don't have  much experience with Ivy,  but perhaps can
> you think of any?

What would  it do?  It cannot  be compared with Maven  because Ivy
just resolves dependencies, it's not a build system on its own.

AFAICT  Ivy  would  not  know  the location  where  to  build  the
dependencies.
--
     Jean-Baptiste Quenot
aka  John Banana   Qwerty
http://caraldi.com/jbq/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Michael Wiles
there is a task that you insert at the end of your build to publish the generated jars to ivy right?

It would be great if you could let hudson do that in a way similar to its current system where you specify a filter and whatever is there gets saved as an artifact.

i.e. not only this publish but also a publish to an ivy repo - that would be awesome.

Furthermore, what about another feature where you could tell a build where to _fetch_ its dependencies from?


On 8/20/07, Jean-Baptiste Quenot <[hidden email]> wrote:
* Kohsuke Kawaguchi:

> Bradley Beddoes wrote:
>
> > Hi, IVY is quite excellent  for this situation, you could have
> > the end  of your build  process publish the artifact  to local
> > disk and then have Ivy for process  B pick that up and use it.
> > This is exactly  the way we handle the situation  with some 12
> > interdependent sub projects http://incubator.apache.org/ivy/
>
> I was wondering  if there can be any opportunity  for Hudson Ivy
> plugin. I don't have  much experience with Ivy,  but perhaps can
> you think of any?

What would  it do?  It cannot  be compared with Maven  because Ivy
just resolves dependencies, it's not a build system on its own.

AFAICT  Ivy  would  not  know  the location  where  to  build  the
dependencies.
--
     Jean-Baptiste Quenot
aka  John Banana   Qwerty
http://caraldi.com/jbq/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]




--
see my blog:
http://analysis102.blogspot.com
http://audiblethoughts.blogspot.com
http://outsideofficehours.blogspot.com
Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Stephan Zeissler (KUTTIG)
Wouldn't it make more sense to provide this as a plugin?

- Stephan

Michael Wiles schrieb:

> there is a task that you insert at the end of your build to publish
> the generated jars to ivy right?
>
> It would be great if you could let hudson do that in a way similar to
> its current system where you specify a filter and whatever is there
> gets saved as an artifact.
>
> i.e. not only this publish but also a publish to an ivy repo - that
> would be awesome.
>
> Furthermore, what about another feature where you could tell a build
> where to _fetch_ its dependencies from?
>
>
> On 8/20/07, *Jean-Baptiste Quenot* <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     * Kohsuke Kawaguchi:
>
>     > Bradley Beddoes wrote:
>     >
>     > > Hi, IVY is quite excellent  for this situation, you could have
>     > > the end  of your build  process publish the artifact  to local
>     > > disk and then have Ivy for process  B pick that up and use it.
>     > > This is exactly  the way we handle the situation  with some 12
>     > > interdependent sub projects http://incubator.apache.org/ivy/
>     >
>     > I was wondering  if there can be any opportunity  for Hudson Ivy
>     > plugin. I don't have  much experience with Ivy,  but perhaps can
>     > you think of any?
>
>     What would  it do?  It cannot  be compared with Maven  because Ivy
>     just resolves dependencies, it's not a build system on its own.
>
>     AFAICT  Ivy  would  not  know  the location  where  to  build  the
>     dependencies.
>     --
>          Jean-Baptiste Quenot
>     aka  John Banana   Qwerty
>     http://caraldi.com/jbq/
>
>     ---------------------------------------------------------------------
>     To unsubscribe, e-mail: [hidden email]
>     <mailto:[hidden email]>
>     For additional commands, e-mail: [hidden email]
>     <mailto:[hidden email]>
>
>
>
>
> --
> see my blog:
> http://analysis102.blogspot.com <http://analysis102.blogspot.com>
> http://audiblethoughts.blogspot.com
> http://outsideofficehours.blogspot.com 
--
Stephan Zeissler
Software-Development

KUTTIG Computeranwendungen GmbH
Frankfurter Straße 35
53840 Troisdorf
MOB +49 (173) 7207900
FON +49 (2241) 9833-413
FAX +49 (2241) 9833-100
EMAIL [hidden email]
WEB www.kuttig.com
GF Dipl.-Kfm. Klaus Kuttig
Michael Wessels
HR Siegburg Nr 2848


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

stephan.zeissler.vcf (381 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Kohsuke Kawaguchi
Administrator
Yes, which has been the suggestion all along.

I wonder if it makes sense to just make Hudson itself as an Ivy
repository by using a plugin. An Ivy repository is really just a
directory structure convention, right? In that way you can potentially
get all kinds of artifacts available from Hudson (and there won't be
any need of copying)

2007/8/21, Stephan Zeissler (KUTTIG) <[hidden email]>:

> Wouldn't it make more sense to provide this as a plugin?
>
> - Stephan
>
> Michael Wiles schrieb:
> > there is a task that you insert at the end of your build to publish
> > the generated jars to ivy right?
> >
> > It would be great if you could let hudson do that in a way similar to
> > its current system where you specify a filter and whatever is there
> > gets saved as an artifact.
> >
> > i.e. not only this publish but also a publish to an ivy repo - that
> > would be awesome.
> >
> > Furthermore, what about another feature where you could tell a build
> > where to _fetch_ its dependencies from?

--
Kohsuke Kawaguchi

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: build dependencies

Stephan Zeissler (KUTTIG)
Well, there is an ivy file for every release, too.
It similar to the pom from maven but it only contains informations about
the build (artifact names, revision, dependencies, configurations).

- Stephan

Kohsuke Kawaguchi schrieb:

> Yes, which has been the suggestion all along.
>
> I wonder if it makes sense to just make Hudson itself as an Ivy
> repository by using a plugin. An Ivy repository is really just a
> directory structure convention, right? In that way you can potentially
> get all kinds of artifacts available from Hudson (and there won't be
> any need of copying)
>
> 2007/8/21, Stephan Zeissler (KUTTIG) <[hidden email]>:
>  
>> Wouldn't it make more sense to provide this as a plugin?
>>
>> - Stephan
>>
>> Michael Wiles schrieb:
>>    
>>> there is a task that you insert at the end of your build to publish
>>> the generated jars to ivy right?
>>>
>>> It would be great if you could let hudson do that in a way similar to
>>> its current system where you specify a filter and whatever is there
>>> gets saved as an artifact.
>>>
>>> i.e. not only this publish but also a publish to an ivy repo - that
>>> would be awesome.
>>>
>>> Furthermore, what about another feature where you could tell a build
>>> where to _fetch_ its dependencies from?
>>>      
>
>  
--
Stephan Zeissler
Software-Development

KUTTIG Computeranwendungen GmbH
Frankfurter Straße 35
53840 Troisdorf
MOB +49 (173) 7207900
FON +49 (2241) 9833-413
FAX +49 (2241) 9833-100
EMAIL [hidden email]
WEB www.kuttig.com
GF Dipl.-Kfm. Klaus Kuttig
Michael Wessels
HR Siegburg Nr 2848


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

stephan.zeissler.vcf (381 bytes) Download Attachment