Hi all,

I'm trying to visualize how to perform a release properly, given that

* I'm using git with git-flow on a
* multi-module maven project with a
* parent pom module that is located in a sibling directory to the
other modules which are
* located in a directory other than the git repository's root directory.

The docs for using the maven-release-plugin seem a little sparse when
used with multi-module maven projects like mine.  For example, my git
repo's root directory (the one containing the .git directory) has a
subdirectory called "production/app".  The multi-module root pom is at
production/app/pom.xml, and looks like this:

<project xmlns="http://maven.apache.org/POM/4.0.0";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd";>
        <modelVersion>4.0.0</modelVersion>
        <groupId>org.example</groupId>
        <artifactId>app-root</artifactId>
        <packaging>pom</packaging>
        <version>0.2.0.BUILD-SNAPSHOT</version>
        <name>Application Multimodule Root POM</name>

        <modules>
                <module>parent-pom</module>
                <module>test-support</module>
                <module>support</module>
                <module>domain</module>
                <module>dto</module>
                <module>service</module>
                <module>rest</module>
                <module>web</module>
        </modules>
</project>

Note that it basically only contains <module> entries, one of which is
the parent-pom module, which is in the directory
production/app/parent-pom (the parent pom is then
production/app/parent-pom/pom.xml) and all of the other modules in the
project, then, declare the relative path to the parent pom to be
"<relativePath>../parent-pom/pom.xml</relativePath>".  Now, I'm trying
to use the maven-release-plugin with this project along with git-flow.
 I'm planning on using the following settings, which I've seen in
several posts on using it with git-flow:

                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-release-plugin</artifactId>
                                <version>2.3.2</version>
                                <configuration>
                                        
<autoVersionSubmodules>true</autoVersionSubmodules>
                                        <localCheckout>true</localCheckout>
                                        <pushChanges>false</pushChanges>
                                        
<tagNameFormat>v@{project.version}</tagNameFormat>
                                </configuration>
                        </plugin>

* Into which pom do I put this plugin configuration:  the root pom
(production/app/pom.xml) or the parent pom
(production/app/parent-pom/pom.xml)?
* Into which root or parent's section should this <plugin> section be
placed:  <build><pluginManagement><plugins> or <build><plugins>?

Here's my <scm> section (I'm using "xxx" & "yyy" protect the innocent):

        <scm>
                <connection>scm:git:g...@github.com:xxx/yyy.git</connection>
                
<developerConnection>scm:git:g...@github.com:xxx/yyy.git</developerConnection>
                <url>https://github.com/xxx/yyy</url>
        </scm>

* How do I tell maven that this maven project is located off of the
repo's root, in production/app? Do I use
"scm:git:g...@github.com:xxx/yyy.git/production/app" or something else?

* Into which pom do I put the <scm> section:  the root pom, the parent
pom, or in each module's pom?  If the root pom, do I use
"scm:git:g...@github.com:xxx/yyy.git/production/app"?  If the parent
pom, do I use "scm:git:g...@github.com:xxx/yyy.git/production/app/parent-pom"?
 If in each module's pom, do I use
"scm:git:g...@github.com:xxx/yyy.git/production/app/module_name"?

* Into which pom to I put the <distributionManagement> section:  the
root pom, the parent pom, or each module's pom?

* After I issue my "git flow release start 0.2.0.RELEASE" in my dev
branch's production/app directory, in which directory (after switching
to the release/0.2.0.RELEASE branch, of course) do I issue the command
"mvn release:prepare release:perform":  production/app or
production/app/parent-pom?

--
mailto:matt...@matthewadams.me
skype:matthewadams12
googletalk:matt...@matthewadams.me
http://matthewadams.me
http://www.linkedin.com/in/matthewadams

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to