DAR - Deployit Archive - is a new Maven packaging type. It allows to generate a Deployit deployment package with all the necessary deployables (artifacts and middleware resources) that compose the application and to gather all into an archive (.dar) that could be installed in a Maven repository and later imported into Deployit. The following example describes a package that contains:
<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.xebialabs.deployit</groupId> <artifactId>maven-deployit-plugin-dar-format</artifactId> <packaging>dar</packaging> <!-- DAR packaging --> <version>1.0</version> <name>Dar Format</name> <url>http://www.xebialabs.com</url> <build> <plugins> <plugin> <groupId>com.xebialabs.deployit</groupId> <artifactId>maven-deployit-plugin</artifactId> <version>3.9.2</version> <extensions>true</extensions> <!-- tells maven the plugin contains extensions --> <configuration> <deploymentPackageProperties> <!-- Enter any deployment package level properties as <property>value</property> --> <orchestrator>default</orchestrator> <satisfiesReleaseNotes>true</satisfiesReleaseNotes> </deploymentPackageProperties> <deployables> <jee.War name="petclinic" groupId="com.xebialabs.deployit.demo.petclinic-war" artifactId="PetClinic"/> <jee.War name="petclinic-backend" groupId="com.xebialabs.deployit.demo.petclinic-war" artifactId="PetClinic-Backend"/> <file.Archive name="mysql-backend" groupId="mysql" artifactId="mysql-connector-java"/> <file.Folder name="configurationFolder" location="config"/> <file.Archive name="configuration" groupId="org.some.group" artifactId="your-artifact" classifier="txt"/> <wls.DataSourceSpec name="petclinicDS"> <jndiNames>jndi/toto</jndiNames> <driverName>com.mysql.jdbc.Driver</driverName> <url>jdbc:mysql://localhost/petclinic</url> <username>{{DB_USERNAME}}</username> <password>{{DB_PASSWORD}}</password> </wls.DataSourceSpec> <sample.AllPossibleKindsSpec name="sampleWithAllPossibleKinds"> <someProp>propValue</someProp> <someBoolean>true</someBoolean> <myList> <value>val1</value> <value>val2</value> </myList> <myMap> <entry key="key">value</entry> <entry key="foo">bar</entry> </myMap> <myEmbedded> <sample.EmbeddedCi name="MyEmbeddedCi"> <someProp>propValue</someProp> </sample.EmbeddedCi> </myEmbedded> <myCiRef ref="petClinicDs"/> <myCiRefs> <ci ref="petclinic-backend"/> <ci ref="mysql-backend"/> </myCiRefs> </sample.AllPossibleKindsSpec> </deployables> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.xebialabs.deployit.demo.petclinic-war</groupId> <artifactId>PetClinic</artifactId> <version>1.0</version> <type>war</type> <scope>provided</scope> </dependency> <dependency> <groupId>com.xebialabs.deployit.demo.petclinic-war</groupId> <artifactId>PetClinic-Backend</artifactId> <version>1.0-SNAPSHOT</version> <type>war</type> <scope>provided</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.13</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.some.group</groupId> <artifactId>your-artifact</artifactId> <version>1.0</version> <classifier>txt</classifier> <!-- you can use a classifier here --> <scope>provided</scope> </dependency> </dependencies> </project>
This format is still supported by the plugin.
<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"> ... <build> <plugins> <plugin> <groupId>com.xebialabs.deployit</groupId> <artifactId>maven-deployit-plugin</artifactId> <version>3.9.2</version> <extensions>true</extensions> <!-- tells maven the plugin contains extensions --> <configuration> <deployables> <deployable> <name>petclinic</name> <type>jee.War</type> <groupId>com.xebialabs.deployit.demo.petclinic-war</groupId> <artifactId>PetClinic</artifactId> </deployable> <deployable> <name>configuration</name> <type>file.Folder</type> <location>config</location> </deployable> <deployable> <name>aPackage2</name> <groupId>org.some.group</groupId> <artifactId>your-artifact</artifactId> <classifier>package2</classifier> <!-- you can use a classifier here --> <type>file.Archive</type> </deployable> <deployable> <name>petclinicDS</name> <type>wls.DataSourceSpec</type> <jndiNames>jndi/toto</jndiNames> <driverName>com.mysql.jdbc.Driver</driverName> <url>jdbc:mysql://localhost/petclinic</url> <username>{{DB_USERNAME}}</username> <password>{{DB_PASSWORD}}</password> </deployable> <deployable> <name>sample.AllPossibleKinds</name> <type>sample.AllPossibleKindsSpec</type> <someProp>propValue</someProp> <someBoolean>true</someBoolean> <myList> <list> <value>value1</value> <value>value2</value> </list> </myList> <myMap> <map> <key>value</key> <foo>bar</foo> </map> </myMap> </deployable> </deployables> </configuration> </plugin> </plugins> </build> <dependencies> ... </dependencies> </project>