Skip to content

Instantly share code, notes, and snippets.

@tomkel5
Created December 31, 2013 17:19
Show Gist options
  • Save tomkel5/8199801 to your computer and use it in GitHub Desktop.
Save tomkel5/8199801 to your computer and use it in GitHub Desktop.
Version Override Mojo
$> mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Version Override Maven Plugin 1.0
[INFO] --- maven-clean-plugin:2.3:clean (default-clean) @ tk-version-override-maven-plugin ---
[INFO] Deleting file set: /home/tkelley/git/tomkel/tk-version-override-maven-plugin/target (included: [**], excluded: [])
[INFO]
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ tk-version-override-maven-plugin ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/tkelley/git/tomkel/tk-version-override-maven-plugin/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ tk-version-override-maven-plugin ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /home/tkelley/git/tomkel/tk-version-override-maven-plugin/target/classes
[INFO]
[INFO] --- maven-plugin-plugin:3.2:descriptor (default-descriptor) @ tk-version-override-maven-plugin ---
[WARNING]
Goal prefix is specified as: 'mysql-jdbc-compliance'. Maven currently expects it to be 'tk-version-override'.
[WARNING] Using platform encoding (UTF-8 actually) to read mojo metadata, i.e. build is platform dependent!
[INFO] Applying mojo extractor for language: java-annotations
[INFO] Mojo extractor for language: java-annotations found 0 mojo descriptors.
[INFO] Applying mojo extractor for language: java
[INFO] Mojo extractor for language: java found 1 mojo descriptors.
[INFO] Applying mojo extractor for language: bsh
[INFO] Mojo extractor for language: bsh found 0 mojo descriptors.
[INFO]
[INFO] --- maven-resources-plugin:2.3:testResources (default-testResources) @ tk-version-override-maven-plugin ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/tkelley/git/tomkel/tk-version-override-maven-plugin/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ tk-version-override-maven-plugin ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ tk-version-override-maven-plugin ---
[INFO] No tests to run.
[INFO] Surefire report directory: /home/tkelley/git/tomkel/tk-version-override-maven-plugin/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.2:jar (default-jar) @ tk-version-override-maven-plugin ---
[INFO] Building jar: /home/tkelley/git/tomkel/tk-version-override-maven-plugin/target/tk-version-override-maven-plugin-1.0.jar
[INFO]
[INFO] --- maven-plugin-plugin:3.2:addPluginArtifactMetadata (default-addPluginArtifactMetadata) @ tk-version-override-maven-plugin ---
[INFO]
[INFO] --- maven-install-plugin:2.3:install (default-install) @ tk-version-override-maven-plugin ---
[INFO] Installing /home/tkelley/git/tomkel/tk-version-override-maven-plugin/target/tk-version-override-maven-plugin-1.0.jar to /home/tkelley/.m2/repository/com/tomkel/tk-version-override-maven-plugin/1.0/tk-version-override-maven-plugin-1.0.jar
[INFO] Installing /home/tkelley/git/tomkel/tk-version-override-maven-plugin/pom.xml to /home/tkelley/.m2/repository/com/tomkel/tk-version-override-maven-plugin/1.0/tk-version-override-maven-plugin-1.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.469s
[INFO] Finished at: Tue Dec 31 12:16:35 EST 2013
[INFO] Final Memory: 13M/212M
[INFO] ------------------------------------------------------------------------
$> mvn clean install
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.tomkel:some-project:jar:1.2.3
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 14, column 21
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building some-project 1.2.3
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.3:clean (default-clean) @ some-project ---
[INFO] Deleting file set: /home/tkelley/git/tomkel/some-project/target (included: [**], excluded: [])
[INFO]
[INFO] --- tk-version-override-maven-plugin:1.0:overrideVersion (default) @ some-project ---
[INFO]
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ some-project ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/tkelley/git/tomkel/some-project/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ some-project ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.3:testResources (default-testResources) @ some-project ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/tkelley/git/tomkel/some-project/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.0.2:testCompile (default-testCompile) @ some-project ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ some-project ---
[INFO] No tests to run.
[INFO] Surefire report directory: /home/tkelley/git/tomkel/some-project/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.2:jar (default-jar) @ some-project ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /home/tkelley/git/tomkel/some-project/target/some-project-1.2.3.jar
[INFO]
[INFO] --- maven-install-plugin:2.3:install (default-install) @ some-project ---
[INFO] Installing /home/tkelley/git/tomkel/some-project/target/some-project-1.2.3.jar to /home/tkelley/.m2/repository/com/tomkel/some-project/TRY_THIS_TOO/some-project-TRY_THIS_TOO.jar
[INFO] Installing /home/tkelley/git/tomkel/some-project/pom.xml to /home/tkelley/.m2/repository/com/tomkel/some-project/TRY_THIS_TOO/some-project-TRY_THIS_TOO.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.601s
[INFO] Finished at: Tue Dec 31 12:17:39 EST 2013
[INFO] Final Memory: 5M/117M
[INFO] ------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<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>com.tomkel</groupId>
<artifactId>tk-version-override-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0</version>
<name>Version Override Maven Plugin</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.2</version>
<configuration>
<goalPrefix>mysql-jdbc-compliance</goalPrefix>
</configuration>
<executions>
<execution>
<id>default-descriptor</id>
<goals>
<goal>descriptor</goal>
</goals>
<phase>process-classes</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tomkel</groupId>
<artifactId>some-project</artifactId>
<version>1.2.3</version>
<dependencies/>
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>com.tomkel</groupId>
<artifactId>tk-version-override-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<goals>
<goal>overrideVersion</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
package com.tomkel.maven;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
/**
* This goal overrides the current artifact version
*
* @goal overrideVersion
*
* @phase initialize
*/
public class VersionOverrideGoal
extends AbstractMojo
{
/**
* @parameter default-value="${project}"
*/
private MavenProject mavenProject;
/**
* Run the Mojo
* @throws org.apache.maven.plugin.MojoExecutionException
*/
public void execute()
throws MojoExecutionException
{
this.mavenProject.setVersion("TRY_THIS");
this.mavenProject.getArtifact().setVersion("TRY_THIS_TOO");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment