Update maven properties after a new release, using versions plugin

Im having a problem with a multimodule project in maven/jenkins. For example my structure is like this:

---ProjectA
----pom.xml
--------ModuleA
---------pom.xml
--------ModuleB
---------pom.xml

---ProjectB
-----pom.xml

For example ModuleA has a dependency for something in ProjectB which is defined in ModuleA's pom except for the version which is only defined as property and is inherited from ProjectA's properties section.

I want to automate the release process to get rid of all the manual update of versions in all the poms. So after making a release of ProjectB I what to bump all references in ProjectA.

EDIT More accurate I want to Release ProjectB which has to include a release of ProjectA (because of dependencies) and in the new Snapshots of ProjectA I want references to the newest ProjectB there is.

The maven plugin versions does this pretty well if one would specify the dependency and the version number in the same pom. My problem as you can see is that (I'm speculating) when version plugin tries to check the property field in ProjectA's pom the property can't be associated with a dependency. And I guess that versions plugin looks on the effective pom because it CAN find that the dependency in ModuleA's pom should be updated. It just can't update it due to the fact that its not defined there.

Would be much obliged for a solution which could keep my properties in the parent pom.

Thanks

Answers


Ok. SO I think I've worked something out, but i'll post it here for others to see.

So the thing I think is the problem is that the autoLinkItem only searches the current file for linkage and if you want a property to get assosiated with a dependency not specified in the same file one could explicitly tell the plugin in this.

Like this:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>versions-maven-plugin</artifactId>
    <version>1.2</version>
    <configuration>
        <properties>
            <property>
                <name>basis.version</name>
                <dependencies>
                    <dependency>
                        <groupId>com.mycompany.app.basis</groupId>
                        <artifactId>ModuleBasis</artifactId>
                    </dependency>
                </dependencies>
            </property>
        </properties>
        <includeProperties>basis.version</includeProperties>
        <generateBackupPoms>false</generateBackupPoms>
        <allowSnapshots>true</allowSnapshots>
    </configuration>
</plugin>

Need Your Help

How can I have an ascx postback and refresh itself automatically every X seconds?

asp.net javascript asp.net-ajax timer ascx

I have an ascx control bound to a datasource with frequently changing data. Is there a quick way to have an ascx control postback, rebind and refresh itself every X seconds. The ascx control is in an

JavaScript: how to serialize a DOM element as a string to be used later?

javascript jquery

This may seem like a strange request, and it is quite out of the ordinary, but it's a challenge that I'm trying to solve.