Maven - apycazo/playground GitHub Wiki

Content

  1. Maven sample settings
  2. Read properties from external sources
  3. Generate WAR find additional manifest data
  4. Jetty plugin
  5. Compiler plugin
  6. Distribution management
  7. Local repositories
  8. Resource filtering
  9. [Sample plugins] (https://github.com/apycazo/playground/wiki/Maven#sample-plugin-list)
  10. [Spring version update] (https://github.com/apycazo/playground/wiki/Maven#spring-maven-version-update)

Maven sample settings (.m2/settings.xml)

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>${user.home}/.m2/repository</localRepository>
    <interactiveMode>true</interactiveMode>
    <usePluginRegistry>false</usePluginRegistry>
    <offline>false</offline>
    <servers>
        <server>
            <id>demo-server</id>
            <username>root</username>
            <password>root</password>
        </server>
    </servers>
    <mirrors />
    <proxies>
        <proxy>
            <id>optional</id>
            <active>true</active>
            <protocol>http</protocol>
            <!--
            <username>optional-proxyuser</username>
            <password>optional-proxypass</password>
            -->
            <host>proxy.safezone.com</host>
            <port>8000</port>
            <nonProxyHosts>localhost | 127.0.0.1</nonProxyHosts>
        </proxy>
    </proxies>
</settings>

Read properties from an external source

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>${properties.maven.plugin.version}</version>
    <executions>
        <execution>
            <phase>initialize</phase>
            <goals>
                <goal>read-project-properties</goal>
            </goals>
            <configuration>
                <files>
                    <file>src/main/${env}/config-${env}.properties</file>
                </files>
            </configuration>
        </execution>
    </executions>
</plugin>

Generate WAR with extra manifest data

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <archive>
            <manifest>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
            <manifestEntries>
                <JenkinsBuildNumber>${BUILD_NUMBER}</JenkinsBuildNumber>
                <JenkinsBuildId>${BUILD_ID}</JenkinsBuildId>
                <JenkinsSvnRevision>${SVN_REVISION}</JenkinsSvnRevision>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>

Jetty plugin configuration

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>${jetty.maven.plugin.version}</version>
    <configuration>
        <httpConnector>
            <port>${plugin.jetty.port}</port>
        </httpConnector>
        <webApp>
            <contextPath>${plugin.jetty.contextpath}</contextPath>
        </webApp>
    </configuration>
</plugin>

Compiler plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
        <source>${maven.compiler.source}</source>
        <target>${maven.compiler.target}</target>
    </configuration>
</plugin>

Distribution management config

<distributionManagement>
    <repository>
        <id>test-repo</id>
        <name>test-repo</name>
        <url>http://127.0.0.1:8000/repository/</url>
    </repository>
</distributionManagement>

Local repository

<repository>
    <id>localrepo</id>
    <name>localrepo</name>
    <url>file://${basedir}/deps</url>
</repository>

Resource filtering for maven properties

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
    </resource>
</resources>

Sample plugin list

http://kirang89.github.io/blog/2013/01/20/uploading-your-jar-to-maven-central/

Spring maven version update

<build>
	<plugins>
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>versions-maven-plugin</artifactId>
			<version>2.2</version>
		</plugin>
	</plugins>
</build>

Maven goal example: versions:set -DnewVersion=1.1.0-SNAPSHOT

⚠️ **GitHub.com Fallback** ⚠️