I could not find the best practice for my multi-module maven project,in terms of versioning, release and osgi bundles,
First of all Versioning and relase. my project has 5-6 sub modules with 200+ jar so wanted to use aggregation,
Case 1: Not to specify project versions and use parent version
in this case if i use maven release plugin both tagging and pom.next is ok for development (ok means jar3 will always use latest version of jar1 which is same with itself)but what if i need to make patch relase only for jar1 ? how can i manage to make relase (it says Can't release project due to non released dependencies parent:0.0.2-SNAPSHOT) and if i manage to release jar1 0.0.1.1 ,how to say jar3 to use patched version of jar1?
Parent Proejct (0.0.1-Snapshot)
Module1
Jar1
Jar2
Module2
Jar3
(dependencies)[Jar1(project.version),Jar2(project.version)]
Jar4
(dependencies)[Jar1(project.version),Jar3(project.version)]
Case 2: Maybe it is good idea to specify jar versions in property file of parent pom
in this case when use release plugin unfortunetly when i check pom.next i see that both jar version and dependency versions are reverted to hardcoded instead of property (jar1.version) so that for next release i will not be able to use properties , and second problem is even i manage to solve 1st problem maven release plugin does not change properties so next release will use unmodified versions from properties
Parent Proejct
Properties
jar1.version
jar2.version
jar3.version
jar4.version
Module1
Jar1(jar1.version)
Jar2(jar2.version)
Module2(0.0.1-Snapshot)
Jar3(jar3.version)
(dependencies)[Jar1,Jar2]
Jar4(0.0.1-Snapshot)
(dependencies)[Jar1,Jar3]
I am kind of confused, didnt thought that relase and patch procedure would be that difficult, what is the best way to manage this kind of requirements with maven