Skip to content

Instantly share code, notes, and snippets.

@atanasenko
Last active August 29, 2015 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atanasenko/d49280022ea60aec600a to your computer and use it in GitHub Desktop.
Save atanasenko/d49280022ea60aec600a to your computer and use it in GitHub Desktop.
custom packaging type components definition
<?xml version="1.0" encoding="UTF-8"?>
<component-set>
<components>
<component>
<role>org.apache.maven.artifact.handler.ArtifactHandler</role>
<role-hint>composite-resources</role-hint>
<implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler
</implementation>
<configuration>
<type>composite-resources</type>
<extension>zip</extension>
<language>java</language>
<addedToClasspath>false</addedToClasspath>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>composite-resources</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping
</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<phases>
<package>
<mojos>
<mojo>
<goal>org.apache.maven.plugins:maven-dependency-plugin:unpack-dependencies
</goal>
<configuration>
<silent>true</silent>
<includeTypes>zip</includeTypes>
</configuration>
</mojo>
<mojo>
<goal>org.apache.maven.plugins:maven-antrun-plugin:run
</goal>
<configuration>
<target>
<property name="plugin_classpath" refid="maven.plugin.classpath" />
<taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="maven.plugin.classpath" />
<for list="\${resources.composition}" delimiter="," param="comp" trim="true">
<sequential>
<copy overwrite="false" todir="target/assembly/\${resources.base}/\${resource.module}" quiet="true">
<fileset dir="target/dependency/@{comp}" />
</copy>
</sequential>
</for>
<copy overwrite="true" todir="target/assembly/\${resources.base}/\${resources.module}">
<fileset dir="src/\${resources.base}/\${resources.module}" />
</copy>
<ant dir="src/build" antfile="build.xml" />
</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<exclusions>
<exclusion>
<artifactId>ant</artifactId>
<groupId>ant</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.inconspicuous</groupId>
<artifactId>jsmin</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<artifactId>jakarta-regexp</artifactId>
<groupId>jakarta-regexp</groupId>
<version>1.4</version>
</dependency>
</dependencies>
</mojo>
<mojo>
<goal>org.apache.maven.plugins:maven-assembly-plugin:single
</goal>
<configuration>
<descriptorRefs>
<descriptorRef>composite-resources-assembly
</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
<finalName>\${project.artifactId}-\${project.version}
</finalName>
</configuration>
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>lifecycle-assemblies</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</mojo>
</mojos>
</package>
<install>
org.apache.maven.plugins:maven-install-plugin:2.4:install
</install>
<deploy>
org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy
</deploy>
</phases>
</lifecycle>
</lifecycles>
</configuration>
</component>
</components>
</component-set>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment