• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Liutauras Vilda
  • Paul Clapham
Sheriffs:
  • paul wheaton
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Piet Souris
Bartenders:
  • Mike London

Building larger java projects with dependent libraries

 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

My project / repository is becoming quite large. There are a number of modules I could extract into external libraries (this is all git + maven + J2SE) for reducing the code in the project and also because these libraries could be reused by other projects / people.

My issue is if I break my project up, building, deploying and managing dependencies becomes painful. I currently use jenkins + artifactory for build / deployment.

The main headache would be for a release of the project I would need to change versions / build / deploy all of the changed dependent libraries first before the actual project release / build. Some libraries will be fairly static / not change much, but there are going to definitely be a handful which will evolve in parallel. The development can be designed in such a way to be compatible, just the overhead of build / release is my main problem.

Anyone out there that have or solved similar issues with larger or shared java projects?

At the moment I'm pretty much looking into scripting or hand rolling something to analyse the dependencies and build / deploy everything, either in bash, but maybe gradle. But I kinda feel there must be better way as this must be a common issue with many larger projects / some reasonably ways of dealing with it.

Thanks for any help,
Jon
 
Ranch Hand
Posts: 645
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
actually its very common problem with commercial projects with multiple solutions, but I prefer the solution of parent project and pom (with maven).

So I would have one parent project that would just configure all the required projects i.e in Pom.xml and each project will have its own pom that defines the dependency on either 3rd party lib or internal projects.
and version of all the common libs/projects is defined in parent pom including the version of release. something like below.


In Hudson you define individual project with the project creating war or ear as downstream project so every time a support project example DatabaseLayer is build it will trigger building of WebProject.

-P
 
reply
    Bookmark Topic Watch Topic
  • New Topic