diff options
Diffstat (limited to 'common/minimal-distribution-parent')
-rw-r--r-- | common/minimal-distribution-parent/asciidoc/Readme.adoc | 3 | ||||
-rw-r--r-- | common/minimal-distribution-parent/pom.xml | 176 |
2 files changed, 179 insertions, 0 deletions
diff --git a/common/minimal-distribution-parent/asciidoc/Readme.adoc b/common/minimal-distribution-parent/asciidoc/Readme.adoc new file mode 100644 index 000000000..7964867a3 --- /dev/null +++ b/common/minimal-distribution-parent/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += minimal-distribution-parent + +Maven parent for projects that provide honeycomb distribution.
\ No newline at end of file diff --git a/common/minimal-distribution-parent/pom.xml b/common/minimal-distribution-parent/pom.xml new file mode 100644 index 000000000..ff077ef0b --- /dev/null +++ b/common/minimal-distribution-parent/pom.xml @@ -0,0 +1,176 @@ +<?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> + + <parent> + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>hc2vpp-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <relativePath>../hc2vpp-parent</relativePath> + </parent> + + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>minimal-distribution-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <name>${project.artifactId}</name> + <packaging>pom</packaging> + + <properties> + <exec.parameters>-Xms32m -Xmx128m -XX:MetaspaceSize=32m -XX:MaxMetaspaceSize=128m</exec.parameters> + <exec.parameters.minimal>-client -Xms20m -Xmx32m -XX:MetaspaceSize=5m -XX:MaxMetaspaceSize=32m -XX:MaxMetaspaceExpansion=1m -Xss512k -XX:+UseSerialGC -Djava.compiler=NONE -Xverify:none -noverify</exec.parameters.minimal> + <random.seed.file>/dev/./urandom</random.seed.file> + </properties> + + <!-- import dependencies from honeycomb minimal-distribution-parent --> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>io.fd.honeycomb.common</groupId> + <artifactId>minimal-distribution-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <!-- Generate executable shell script --> + <build> + <!-- HC2VPP-119: settings copied from honeycomb's minimal-distribution-parent --> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.6</version> + <configuration> + <archive> + <manifest> + <mainClass>${main.class}</mainClass> + <addClasspath>true</addClasspath> + <classpathPrefix>lib/</classpathPrefix> + <useUniqueVersions>false</useUniqueVersions> + <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout> + </manifest> + <manifestEntries> + <Class-Path>config/ cert/ modules/</Class-Path> + </manifestEntries> + </archive> + </configuration> + </plugin> + + <!-- Copy all dependencies --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>2.10</version> + <executions> + <execution> + <id>copy-dependencies</id> + <phase>package</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <outputDirectory>${project.build.directory}/lib</outputDirectory> + <useBaseVersion>true</useBaseVersion> + <useRepositoryLayout>true</useRepositoryLayout> + <excludeArtifactIds>yang-jmx-generator</excludeArtifactIds> + </configuration> + </execution> + <execution> + <id>unpack-configuration</id> + <phase>prepare-package</phase> + <goals> + <goal>unpack-dependencies</goal> + </goals> + <configuration> + <includes>**/honeycomb-minimal-resources/</includes> + <outputDirectory>${project.build.outputDirectory}/</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <!-- Generate shell script --> + <!-- Extract modules started by distribution --> + <plugin> + <groupId>org.codehaus.gmaven</groupId> + <artifactId>groovy-maven-plugin</artifactId> + <executions> + <execution> + <id>start-scripts-generation</id> + <phase>package</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source> + io.fd.honeycomb.common.scripts.StartupScriptGenerator.generate(project, properties, log) + </source> + </configuration> + </execution> + <execution> + <id>distribution-module-assembly</id> + <!-- phase changed from package to earlier phase to generate module descriptor before distribution jar is created, + to include descriptor in the jar,to be accessible to children distributions--> + <phase>prepare-package</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source> + io.fd.honeycomb.common.scripts.ModulesListGenerator.generate(project, properties, log) + </source> + </configuration> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>io.fd.honeycomb.common</groupId> + <artifactId>common-scripts</artifactId> + <version>1.17.04-SNAPSHOT</version> + </dependency> + </dependencies> + </plugin> + + <!-- Build archives --> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>2.5.3</version> + <dependencies> + <dependency> + <groupId>io.fd.honeycomb.common</groupId> + <artifactId>minimal-assembly-descriptor</artifactId> + <version>1.17.04-SNAPSHOT</version> + </dependency> + </dependencies> + <executions> + <execution> + <id>create-archive</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + <configuration> + <descriptorRefs> + <descriptorRef>honeycomb-minimal</descriptorRef> + </descriptorRefs> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <!--http://stackoverflow.com/questions/18107375/getting-skipping-jacoco-execution-due-to-missing-execution-data-file-upon-exec--> + <argLine>${argLine} -Djava.security.egd=file:${random.seed.file}</argLine> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> +</project>
\ No newline at end of file |