FYI, I've created a JIRA issue with the patch here:

    http://jira.codehaus.org/browse/MINSTALL-37

I'd appreciate it if this could get applied and new snaps deployed... :-)

--jason


On Mar 14, 2007, at 7:08 PM, Jason Dillon wrote:

I quickly mocked up the forceVersion with the groovy-maven-plugin and it works very well. Here is the g-m-p pom:

    http://rifers.org/paste/jdillon/show/3939

One of the src/it poms:

    http://rifers.org/paste/jdillon/show/3938

And the change to InstallMojo:

    http://rifers.org/paste/jdillon/show/3940 (full src)
    http://rifers.org/paste/jdillon/show/3941 (just the diff)

With this change for forceVersion, then none of the src/it/*/ pom.xml files need to know anything about the current plugins version, as they just assume that artifacts with version "testing" are the latest.

Normal install:install works as expected, so that once all of the integration tests pass, the normal version of the artifacts make it into the repository. Also, since "testing" is not a SNAPSHOT, the invoker runs a tad bit faster since it doesn't have to resolve SNAPSHOTS for the plugin being tested.

And... one can simple `mvn -Dit install` after a clean checkout and clean repo and the build will perform as expected.

 * * *

I think this is pretty easy/simple and should always work. Unless you know of a better/simpler way... I'd like to get this change into the maven-install-plugin.

--jason


On Mar 14, 2007, at 5:29 PM, Jason van Zyl wrote:


On 3 Mar 07, at 11:06 PM 3 Mar 07, Jason Dillon wrote:

Any comments on adding a 'forceVersion' param to the maven- install-plugin, which will for all artifacts (including attached) to be installed with the given version?


Why not just use test repositories? You can hack this with a settings but is now easy to do in 2.1 expressly for the purpose of making testing easier. Do you need to force a version if using test repositories was simple?

Jason.

I'm thinking this would be really helpful for testing maven plugins, so that in the pre-integration-test phase, one could use the m-install-p to force all artifacts to be installed with a 'testing' version, then in the 'integration-test' phase run the m- invoker-p to execute a set of maven projects to test/validate the plugin works as expected, and then once that passes, the normal m- install-p execution will install the real versions of the artifacts into the repository.

This would allow the src/it/**/pom.xml files to use <version>testing</version> for all of the plugin artifacts, and would prevent broken artifacts (which don't pass tests) from making it into the local repo cache (and thus available to other projects).

For example:

----8<----
    <build>
        <plugins>
          <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <forceVersion>testing</forceVersion>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-invoker-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
<projectsDirectory>${pom.basedir}/src/ it</projectsDirectory>
                            <pomIncludes>
<pomInclude>**/pom.xml</ pomInclude> <!-- all of these poms use <version>testing</version> -->
                            </pomIncludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
---->8----

I've been digging around trying to figure out how to test my plugins... so far I have not found a single example that just works out of the box... I've gotten the groovy-maven-plugin ( http://svn.codehaus.org/mojo/trunk/mojo/mojo-sandbox/groovy- maven-plugin/ ) to work *almost* as I'd like... the only exception is that right now I have to hard-code the version of the plugin being tested in each src/it/**/pom.xml... which I would really like to avoid.

I've seen a few other plugins use the maven-plugin-management- plugin... but I've no idea what it does... same thing with maven- plug-it-plugin... both look like they might do something along the lines to allow src/it/**/pom.xml to not need hardcoded plugin versions... but I really can't tell.

Anyways... I think simply adding a 'forceVersion' to the maven- install-plugin should solve this... and not introduce more plugins to support/maintain.

--jason

-------------------------------------------------------------------- -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to