Re: Maven and Continuous Integration
I suspect the best way to think of it is that some of the company libraries are treated like third party libraries and other company libraries are treated differently because they are being worked on. You don't update compiled or source for, say, Spring that often. When you do update its a big enough deal to change version numbers for your build that you can "download" the source if you need it for debugging. Lots of times the changes between two of these versions are minor enough that using the old source with the new binary works good enough and you don't really care. Treat some of your in-house libraries the same way. Update rarely because it takes time to do it. The rest of the in-house libraries are those "you" are working on and will need to be updated from source control often enough. Usually the pain of debugging a problem when using old source is enough to encourage people to update that source. Or the pain of breaking the build (or the tests) by checking in code that doesn't work because "you" didn't update your source will do it. Someone finds there is a key issue and tells everyone else to update. It just sort of works if you keep the lines of communication open. -- -- Lee Meador Sent from gmail. My real email address is [EMAIL PROTECTED]
RE: Maven and Continuous Integration
This is close to what I wanted to be able to do in M2 as well. One thing to be clear about is what source code a developer may be using directly from source control (as opposed to a source distribution of a dependency artifact). We have taken our product and divided it up into many smaller (and independent) projects which produce individual artifacts (and we haven't looked back). This means a developer will only get the code out of source control for the (relatively few--usually one or two) projects he is actually working on. The other source code would be for dependencies to those projects (and provided as source distributions alongside the artifacts for those dependencies). Right now, for the most part, we just make do without the source distribution for dependencies. For the rare instance that we need to debug into a dependency (which really doesn't happen much), the developer will usually get the code for that project from source control and build it locally (to be sure the code matches the jar he's using). There are times that this can't work, though (e.g. when the dependency isn't for the latest version of the artifact). For a developer working primarily in an IDE, if their project has snapshot dependencies, it's up to the developer to make sure he's got the latest versions in his local repository. He can do this by occasionally building the project using maven (instead of the IDE). One problem here is that a normal build will download the latest dependencies, but not the source distributions for those dependencies. If all he wants are the latest versions and their source distributions, I'm hoping there's a goal in the eclipse/idea plugin that can facilitate this. If not, then I'll write a plugin that does this. Once there's a single plugin that gets them up to date, then the source distribution will always be in sync with the version of the dependency in the developer's local repository. It would be even better if the Eclipse plugin for Maven 2 could automatically check the dependencies and verify that the source distribution is up to date (and download it if it isn't). I don't know if it will do that sort of thing or not (I haven't taken the time to research what's possible and straightforward when working with the IDEs yet). ..David.. -Original Message- From: Michael Böckling [mailto:[EMAIL PROTECTED] Sent: Tuesday, December 20, 2005 2:18 AM To: Maven Users List Subject: Re: Maven and Continuous Integration Hi David, thank you for your answer. Sorry for being unclear, but I guess all the issues you brought up are important. I'm really new to the CI concept, and I'm not sure if there is only one way to do it, so thats why I'm asking. I just thought that if developers are expected to write their code in such a way that it will work in conjunction with the latest sources of all dependent projects, it would also be a necessity to have the latest sources (and binaries, maybe) also in their IDE, and not only in a snapshot repo or Continuum or so. So once there is a new build (nightly or even CI), binary and source references in Eclipse (for instance) should point to that newest version, or am I wrong? But wouldn't it be a bit unpractical for all developers to update projects in their IDE several times a day? I was hoping that we could use some Maven automatism. I know source jars can be released with Maven, but I don't know if these sources can be attached to the binary dependencies using the M2 plugin (but I know the Eclipse "userlibraries" concept allows that, so maybe a Mojo that automatically creates those as a temporary workaround would be feasible). What I envision is this: - CI builds upon commits to SVN (released to a special CI snapshot repo), whithout any ballast because of performance issues (no site generation etc.). - Nightly builds with all bells and whistles When the dev starts working in the morning, all binary and source references of dependent projects in his IDE automatically point to the result of the last nightly build, which would reside in some snapshot repository. I guess it would take two different snapshot repos, one for CI and one for nightly builds, but I'm not sure if it is enough for the devs to just use the nightly builds as references or also the CI results. Does that make any sense to you? I'm still uncertain how to adress this whole nightly/ci thing properly... Thank you very much, Michael >David, > >What is the scope of each CI build, compile and test, site too, etc? > >I have CI only on compile and test for all our product codelines, and 1 >nightly for site generation as the site gen takes hours to run. > >Just wondering if you have an trick to share :-D > > >-----Original Message- >From: David Jackman [mailto:[E
RE: Maven and Continuous Integration
I never had the time to set up two separate build projects to make it faster, so each build deletes the entire source tree, gets the code from source control, does a multiproject:deploy, then a multiproject:site, then finally a site:deploy. I know this is very inefficient (all the tests wind up getting run 3 times), but that's the way it is now. ..David.. -Original Message- From: Jeff Jensen [mailto:[EMAIL PROTECTED] Sent: Monday, December 19, 2005 9:25 PM To: 'Maven Users List' Subject: RE: Maven and Continuous Integration David, What is the scope of each CI build, compile and test, site too, etc? I have CI only on compile and test for all our product codelines, and 1 nightly for site generation as the site gen takes hours to run. Just wondering if you have an trick to share :-D -Original Message- From: David Jackman [mailto:[EMAIL PROTECTED] Sent: Monday, December 19, 2005 12:40 PM To: Maven Users List Subject: RE: Maven and Continuous Integration In our department, we use Maven (v1.0 currently) to do continuous integration builds and a few will use it to do builds on their own machines but most do their own builds using an IDE and use Maven only to update dependencies as necessary. We don't do separate nightly builds--only continuous builds. I'm not sure what you mean by "source references in your IDE". If you're referring to where the IDE gets the source for a particular project, then this comes out of source control like any other project (i.e. Maven isn't affecting the source at all). If you're referring to where the IDE finds a particular project's binary dependencies, then the IDE refers to these in the user's local repository (we use the IDEA and Eclipse plugins to generate the projects, and they create the references automatically). If you're referring to where the IDE finds the source code for a particular project's binary dependencies, then we haven't really addressed this problem. Users can access the source code for other projects within our department from source control. With Maven 2 we were hoping to make source references like this work more automatically (there's ways to make it work better in Maven 1, but we haven't wanted to invest much time into making M1 work better while trying to move to M2). Hope this helps, ..David.. -Original Message- From: Michael Böckling [mailto:[EMAIL PROTECTED] Sent: Monday, December 19, 2005 10:54 AM To: Maven Users List Subject: Maven and Continuous Integration Hi folks, this question might be a little OT, but just a little: I'd like to know how you handle your continuous integration builds and the source references in your IDE. Suppose you got nightly builds as well as CI builds, to which sources would you link the project to you are currently working on? The snapshot build from last night? The latest result of the CI build? Not use Maven (repository) at all for that because you check integration whithin your IDE, using checked-out sources of the dependen projects? I'm really curious to know how others solved that... Good night, Michael -- Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED]; http://www.giniality.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven and Continuous Integration
Hi David, thank you for your answer. Sorry for being unclear, but I guess all the issues you brought up are important. I'm really new to the CI concept, and I'm not sure if there is only one way to do it, so thats why I'm asking. I just thought that if developers are expected to write their code in such a way that it will work in conjunction with the latest sources of all dependent projects, it would also be a necessity to have the latest sources (and binaries, maybe) also in their IDE, and not only in a snapshot repo or Continuum or so. So once there is a new build (nightly or even CI), binary and source references in Eclipse (for instance) should point to that newest version, or am I wrong? But wouldn't it be a bit unpractical for all developers to update projects in their IDE several times a day? I was hoping that we could use some Maven automatism. I know source jars can be released with Maven, but I don't know if these sources can be attached to the binary dependencies using the M2 plugin (but I know the Eclipse "userlibraries" concept allows that, so maybe a Mojo that automatically creates those as a temporary workaround would be feasible). What I envision is this: - CI builds upon commits to SVN (released to a special CI snapshot repo), whithout any ballast because of performance issues (no site generation etc.). - Nightly builds with all bells and whistles When the dev starts working in the morning, all binary and source references of dependent projects in his IDE automatically point to the result of the last nightly build, which would reside in some snapshot repository. I guess it would take two different snapshot repos, one for CI and one for nightly builds, but I'm not sure if it is enough for the devs to just use the nightly builds as references or also the CI results. Does that make any sense to you? I'm still uncertain how to adress this whole nightly/ci thing properly... Thank you very much, Michael David, What is the scope of each CI build, compile and test, site too, etc? I have CI only on compile and test for all our product codelines, and 1 nightly for site generation as the site gen takes hours to run. Just wondering if you have an trick to share :-D -Original Message- From: David Jackman [mailto:[EMAIL PROTECTED] Sent: Monday, December 19, 2005 12:40 PM To: Maven Users List Subject: RE: Maven and Continuous Integration In our department, we use Maven (v1.0 currently) to do continuous integration builds and a few will use it to do builds on their own machines but most do their own builds using an IDE and use Maven only to update dependencies as necessary. We don't do separate nightly builds--only continuous builds. I'm not sure what you mean by "source references in your IDE". If you're referring to where the IDE gets the source for a particular project, then this comes out of source control like any other project (i.e. Maven isn't affecting the source at all). If you're referring to where the IDE finds a particular project's binary dependencies, then the IDE refers to these in the user's local repository (we use the IDEA and Eclipse plugins to generate the projects, and they create the references automatically). If you're referring to where the IDE finds the source code for a particular project's binary dependencies, then we haven't really addressed this problem. Users can access the source code for other projects within our department from source control. With Maven 2 we were hoping to make source references like this work more automatically (there's ways to make it work better in Maven 1, but we haven't wanted to invest much time into making M1 work better while trying to move to M2). Hope this helps, ..David.. -Original Message- From: Michael Böckling [mailto:[EMAIL PROTECTED] Sent: Monday, December 19, 2005 10:54 AM To: Maven Users List Subject: Maven and Continuous Integration Hi folks, this question might be a little OT, but just a little: I'd like to know how you handle your continuous integration builds and the source references in your IDE. Suppose you got nightly builds as well as CI builds, to which sources would you link the project to you are currently working on? The snapshot build from last night? The latest result of the CI build? Not use Maven (repository) at all for that because you check integration whithin your IDE, using checked-out sources of the dependen projects? I'm really curious to know how others solved that... Good night, Michael -- Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED]; http://www.giniality.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven and Continuous Integration
We compile, test, assemble (jar, war, ear etc). Every build We have a special overnight build to do the sites for all projects. On 12/20/05, Jeff Jensen <[EMAIL PROTECTED]> wrote: > David, > > What is the scope of each CI build, compile and test, site too, etc? > > I have CI only on compile and test for all our product codelines, and 1 > nightly for site generation as the site gen takes hours to run. > > Just wondering if you have an trick to share :-D > > > -Original Message- > From: David Jackman [mailto:[EMAIL PROTECTED] > Sent: Monday, December 19, 2005 12:40 PM > To: Maven Users List > Subject: RE: Maven and Continuous Integration > > In our department, we use Maven (v1.0 currently) to do continuous > integration builds and a few will use it to do builds on their own machines > but most do their own builds using an IDE and use Maven only to update > dependencies as necessary. > > We don't do separate nightly builds--only continuous builds. > > I'm not sure what you mean by "source references in your IDE". If you're > referring to where the IDE gets the source for a particular project, then > this comes out of source control like any other project (i.e. Maven isn't > affecting the source at all). If you're referring to where the IDE finds a > particular project's binary dependencies, then the IDE refers to these in > the user's local repository (we use the IDEA and Eclipse plugins to generate > the projects, and they create the references automatically). If you're > referring to where the IDE finds the source code for a particular project's > binary dependencies, then we haven't really addressed this problem. Users > can access the source code for other projects within our department from > source control. With Maven 2 we were hoping to make source references like > this work more automatically (there's ways to make it work better in Maven > 1, but we haven't wanted to invest much time into making M1 work better > while trying to move to M2). > > Hope this helps, > ..David.. > > > -Original Message- > From: Michael Böckling [mailto:[EMAIL PROTECTED] > Sent: Monday, December 19, 2005 10:54 AM > To: Maven Users List > Subject: Maven and Continuous Integration > > Hi folks, > > this question might be a little OT, but just a little: > I'd like to know how you handle your continuous integration builds and the > source references in your IDE. > Suppose you got nightly builds as well as CI builds, to which sources would > you link the project to you are currently working on? The snapshot build > from last night? The latest result of the CI build? Not use Maven > (repository) at all for that because you check integration whithin your IDE, > using checked-out sources of the dependen projects? > I'm really curious to know how others solved that... > > Good night, > Michael > > -- > Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel > P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED]; > http://www.giniality.com/ > > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- http://www.multitask.com.au/people/dion/ "You are going to let the fear of poverty govern your life and your reward will be that you will eat, but you will not live." - George Bernard Shaw - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Maven and Continuous Integration
David, What is the scope of each CI build, compile and test, site too, etc? I have CI only on compile and test for all our product codelines, and 1 nightly for site generation as the site gen takes hours to run. Just wondering if you have an trick to share :-D -Original Message- From: David Jackman [mailto:[EMAIL PROTECTED] Sent: Monday, December 19, 2005 12:40 PM To: Maven Users List Subject: RE: Maven and Continuous Integration In our department, we use Maven (v1.0 currently) to do continuous integration builds and a few will use it to do builds on their own machines but most do their own builds using an IDE and use Maven only to update dependencies as necessary. We don't do separate nightly builds--only continuous builds. I'm not sure what you mean by "source references in your IDE". If you're referring to where the IDE gets the source for a particular project, then this comes out of source control like any other project (i.e. Maven isn't affecting the source at all). If you're referring to where the IDE finds a particular project's binary dependencies, then the IDE refers to these in the user's local repository (we use the IDEA and Eclipse plugins to generate the projects, and they create the references automatically). If you're referring to where the IDE finds the source code for a particular project's binary dependencies, then we haven't really addressed this problem. Users can access the source code for other projects within our department from source control. With Maven 2 we were hoping to make source references like this work more automatically (there's ways to make it work better in Maven 1, but we haven't wanted to invest much time into making M1 work better while trying to move to M2). Hope this helps, ..David.. -Original Message- From: Michael Böckling [mailto:[EMAIL PROTECTED] Sent: Monday, December 19, 2005 10:54 AM To: Maven Users List Subject: Maven and Continuous Integration Hi folks, this question might be a little OT, but just a little: I'd like to know how you handle your continuous integration builds and the source references in your IDE. Suppose you got nightly builds as well as CI builds, to which sources would you link the project to you are currently working on? The snapshot build from last night? The latest result of the CI build? Not use Maven (repository) at all for that because you check integration whithin your IDE, using checked-out sources of the dependen projects? I'm really curious to know how others solved that... Good night, Michael -- Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED]; http://www.giniality.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Maven and Continuous Integration
In our department, we use Maven (v1.0 currently) to do continuous integration builds and a few will use it to do builds on their own machines but most do their own builds using an IDE and use Maven only to update dependencies as necessary. We don't do separate nightly builds--only continuous builds. I'm not sure what you mean by "source references in your IDE". If you're referring to where the IDE gets the source for a particular project, then this comes out of source control like any other project (i.e. Maven isn't affecting the source at all). If you're referring to where the IDE finds a particular project's binary dependencies, then the IDE refers to these in the user's local repository (we use the IDEA and Eclipse plugins to generate the projects, and they create the references automatically). If you're referring to where the IDE finds the source code for a particular project's binary dependencies, then we haven't really addressed this problem. Users can access the source code for other projects within our department from source control. With Maven 2 we were hoping to make source references like this work more automatically (there's ways to make it work better in Maven 1, but we haven't wanted to invest much time into making M1 work better while trying to move to M2). Hope this helps, ..David.. -Original Message- From: Michael Böckling [mailto:[EMAIL PROTECTED] Sent: Monday, December 19, 2005 10:54 AM To: Maven Users List Subject: Maven and Continuous Integration Hi folks, this question might be a little OT, but just a little: I'd like to know how you handle your continuous integration builds and the source references in your IDE. Suppose you got nightly builds as well as CI builds, to which sources would you link the project to you are currently working on? The snapshot build from last night? The latest result of the CI build? Not use Maven (repository) at all for that because you check integration whithin your IDE, using checked-out sources of the dependen projects? I'm really curious to know how others solved that... Good night, Michael -- Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED]; http://www.giniality.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Maven and Continuous Integration
Hi folks, this question might be a little OT, but just a little: I'd like to know how you handle your continuous integration builds and the source references in your IDE. Suppose you got nightly builds as well as CI builds, to which sources would you link the project to you are currently working on? The snapshot build from last night? The latest result of the CI build? Not use Maven (repository) at all for that because you check integration whithin your IDE, using checked-out sources of the dependen projects? I'm really curious to know how others solved that... Good night, Michael -- Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED]; http://www.giniality.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]