Maven module version management and web service stub generation
I'm at a company that has many individual projects that sometimes inter-depend, but rarely co-exist in the same development environment. When I came on board, having a need to debug through many of these applications, I cobbled these modules together under a master pom project and have to restrict incoming changes to the pom files for each module since the version number is always changing, which cause my development environment to use the build artifact instead of the module dependency, mussing up my project until I get it all synchronized up again. It's a pain, but I'm hoping to make this right.
So I'd like to demonstrate what the construct at the company is vs. what I have in my local environment. Maybe there is a change we can make to our process so that this won't always be an issue.
What we have is several service and web modules. The services are typically depended upon by several web clients. To make it simple, here are the services:
Whenever the DB Service is built, it's version number is automatically changed. So for the next build, version 1.0.11 will be the latest version number, and I have to update the dependency in REST_SERVICE to match. Otherwise, by development environment will use the historical previous version (1.0.11). Is there a way I can automatically use whatever version is most recent? I'd like to be able to allow the pom to be updated when I pull the latest code, but if a version mismatch occurs, I have to fix my environment and I have taken to just ignoring server changes to pom.xml.
<!-- Does not have direct dependencies on REST Service, uses URLs only -->
The second part of my question concerns a glitchy build procedure we have. We have several web services for which WSDL's are often regenerated, this whenever a change to the public interface has been made. What the folks here do is to generate a client service stub jar that each web service client depends on. This jar is built manually and manually deployed to our corporate repository, which is a huge pain in the you-know-what. Especially since I sometimes make changes in these services and I have to send an email off to request this step be done. Then I have to update my dependency version for the client stubs jar and then I'm OK.
I personally am fine with generating the client service stubs on my own in my project as I need them, but when the project goes to staging, I have to go by the rules since the build is done on another machine (my local pom entries for generating client service stubs is not on the build machine, and so if the client services stub is not current then there is a problem).
So how would you slice this problem up so that the process is streamlined?
Thanks for any advice you can provide.
Re: Maven Project Structure