lambda-java17-layer
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>io.microlam</groupId> <artifactId>lambda-java17-layer</artifactId> <version>17.0.5.8.1_1</version> </dependency>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>io.microlam</groupId> <artifactId>lambda-java17-layer</artifactId> <version>17.0.5.8.1_1</version> <packaging>pom</packaging> <name>Lambda Layer for Java 17 for amd64 and arm64</name> <description>Lambda Layer for Java 17 for amd64 and arm64</description> <url>https://microlam.io</url> <organization> <name>MicroLam.io</name> <url>https://microlam.io</url> </organization> <licenses> <license> <name>MIT License</name> <url>http://www.opensource.org/licenses/mit-license.php</url> <distribution>repo</distribution> </license> </licenses> <developers> <developer> <name>Frank Afriat</name> <email>frank.afriat@microlam.io</email> <organization>MicroLam.io</organization> <organizationUrl>https://microlam.io</organizationUrl> </developer> </developers> <scm> <connection>scm:git:git://github.com/microlam-io/${project.artifactId}.git</connection> <developerConnection>scm:git:ssh://git@github.com/microlam-io/${project.artifactId}.git</developerConnection> <url>https://github.com/microlam-io/${project.artifactId}/tree/master</url> <tag>HEAD</tag> </scm> <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <properties> <!-- <release.version>11</release.version> --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <gpg.keyname>8011431D42D5A9ACBEF8B2A6D153D68FA8DF084C</gpg.keyname> <junit.version>4.12</junit.version> <sha256.arm64>f35513003c7129a7bb7870b2e8c67de71757a4c159a9f82d5700ede79e35ffbf</sha256.arm64> <jdk17.url.arm64>https://corretto.aws/downloads/resources/17.0.5.8.1/amazon-corretto-17.0.5.8.1-linux-aarch64.tar.gz</jdk17.url.arm64> <jdk17.folder.arm64>amazon-corretto-17.0.5.8.1-linux-aarch64</jdk17.folder.arm64> <native.image.arguments.arm64>-Djdk.lang.Process.launchMechanism=vfork</native.image.arguments.arm64> <arch.arm64>arm64</arch.arm64> <sha256.amd64>a4cfc190f7c549bc8a3f260a8f3af45ddeae63fb10ccad70f914d411aec1e431</sha256.amd64> <jdk17.url.amd64>https://corretto.aws/downloads/resources/17.0.5.8.1/amazon-corretto-17.0.5.8.1-linux-x64.tar.gz</jdk17.url.amd64> <jdk17.folder.amd64>amazon-corretto-17.0.5.8.1-linux-x64</jdk17.folder.amd64> <native.image.arguments.amd64></native.image.arguments.amd64> </properties> <build> <plugins> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <release>${release.version}</release> <encoding>UTF-8</encoding> <forceJavacCompilerUse>true</forceJavacCompilerUse> </configuration> </plugin> --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <id>attach-artifacts-java17-amd64</id> <phase>verify</phase> <goals> <goal>attach-artifact</goal> </goals> <configuration> <artifacts> <artifact> <file>${project.build.directory}/lambda-java17-layer-amd64.zip</file> <type>zip</type> <classifier>amd64</classifier> </artifact> </artifacts> </configuration> </execution> <execution> <id>attach-artifacts-java17-arm64</id> <phase>verify</phase> <goals> <goal>attach-artifact</goal> </goals> <configuration> <artifacts> <artifact> <file>${project.build.directory}/lambda-java17-layer-arm64.zip</file> <type>zip</type> <classifier>arm64</classifier> </artifact> </artifacts> </configuration> </execution> </executions> </plugin> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.40.2</version> <executions> <execution> <id>build-lambda-java17-layer</id> <phase>package</phase> <goals> <goal>stop</goal> <goal>build</goal> <goal>start</goal> </goals> </execution> <execution> <id>copy-lambda-java17-layer</id> <phase>verify</phase> <goals> <goal>copy</goal> </goals> </execution> <execution> <id>stop-lambda-java17-layer-container</id> <phase>install</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> <configuration> <verbose>true</verbose> <images> <!-- <image> <name>${project.artifactId}:${project.version}-native-compile-java${native.version}-${native.arch}</name> <build> <env> <JAVA_TOOL_OPTIONS>${native.image.arguments}</JAVA_TOOL_OPTIONS> </env> <from>amazonlinux:2@sha256:${sha256}</from> <workdir>opt</workdir> <runCmds> <runCmd>yum -y update</runCmd> <runCmd>yum install -y tar zip gzip binutils</runCmd> <runCmd>curl -4 -L ${jdk17.url} -o /usr/lib/jdk17.tar.gz</runCmd> <runCmd>tar -xvzf /usr/lib/jdk17.tar.gz</runCmd> <runCmd>mv ${jdk17.folder} /usr/lib/jdk17</runCmd> <runCmd>/usr/lib/jdk17/bin/jlink - -add-modules "$(/usr/lib/jdk17/bin/java - -list-modules | cut -f1 -d'@' | tr '\n' ',')" - -compress 0 - -no-man-pages - -no-header-files - -strip-debug - -output /opt/jdk17-slim</runCmd> <runCmd>find /opt/jdk17-slim/lib -name *.so -exec strip -p - -strip-unneeded {} \;</runCmd> <runCmd>/usr/lib/jdk17/bin/java -Xshare:dump -version</runCmd> <runCmd>rm /opt/jdk17-slim/lib/classlist</runCmd> <runCmd>cp /usr/lib/jdk17/lib/server/classes.jsa /opt/jdk17-slim/lib/server/classes.jsa</runCmd> <runCmd>zip -r /lambda-java17-layer-${native.arch}.zip *</runCmd> <runCmd>mv /lambda-java17-layer-${native.arch}.zip /opt/</runCmd> </runCmds> <entryPoint>/opt/bootstrap ${lambda.handler}</entryPoint> <assembly> <name>opt</name> <inline> <dependencySets> <dependencySet> <useProjectArtifact>false</useProjectArtifact> <includes> <include>com.amazonaws:aws-lambda-java-core</include> <include>com.amazonaws:aws-lambda-java-serialization</include> <include>io.microlam:aws-lambda-java-runtime-interface-client</include> </includes> </dependencySet> </dependencySets> <fileSets> <fileSet> <directory>${project.basedir}</directory> <includes> <include>bootstrap</include> </includes> <outputDirectory>/</outputDirectory> </fileSet> </fileSets> </inline> </assembly> </build> <run> <ports> <port>9000:8080</port> </ports> <volumes> <bind> <volume>~/.aws/credentials:/root/.aws/credentials</volume> </bind> </volumes> </run> <copy> <entries> <entry> <containerPath>/opt/lambda-java17-layer-${native.arch}.zip</containerPath> <hostDirectory>${project.build.directory}</hostDirectory> </entry> </entries> </copy> </image> --> <image> <name>${project.artifactId}-arm64</name> <build> <env> <JAVA_TOOL_OPTIONS>${native.image.arguments.arm64}</JAVA_TOOL_OPTIONS> </env> <from>amazonlinux:2@sha256:${sha256.arm64}</from> <workdir>opt</workdir> <runCmds> <runCmd>yum -y update</runCmd> <runCmd>yum install -y tar zip gzip binutils</runCmd> <runCmd>curl -4 -L ${jdk17.url.arm64} -o /usr/lib/jdk17.tar.gz</runCmd> <runCmd>tar -xvzf /usr/lib/jdk17.tar.gz</runCmd> <runCmd>mv ${jdk17.folder.arm64} /usr/lib/jdk17</runCmd> <runCmd>/usr/lib/jdk17/bin/jlink --add-modules "$(/usr/lib/jdk17/bin/java --list-modules | cut -f1 -d'@' | tr '\n' ',')" --compress 0 --no-man-pages --no-header-files --strip-debug --output /opt/jdk17-slim</runCmd> <runCmd>find /opt/jdk17-slim/lib -name *.so -exec strip -p --strip-unneeded {} \;</runCmd> <runCmd>/usr/lib/jdk17/bin/java -Xshare:dump -version</runCmd> <runCmd>rm /opt/jdk17-slim/lib/classlist</runCmd> <runCmd>cp /usr/lib/jdk17/lib/server/classes.jsa /opt/jdk17-slim/lib/server/classes.jsa</runCmd> <runCmd>zip -r /lambda-java17-layer-arm64.zip *</runCmd> <runCmd>mv /lambda-java17-layer-arm64.zip /opt/</runCmd> </runCmds> <entryPoint>/opt/bootstrap</entryPoint> <assembly> <name>opt</name> <inline> <dependencySets> <dependencySet> <useProjectArtifact>false</useProjectArtifact> <includes> <include>com.amazonaws:aws-lambda-java-core</include> <include>com.amazonaws:aws-lambda-java-serialization</include> <include>io.microlam:aws-lambda-java-runtime-interface-client</include> </includes> </dependencySet> </dependencySets> <fileSets> <fileSet> <directory>${project.basedir}</directory> <includes> <include>bootstrap</include> </includes> <outputDirectory>/</outputDirectory> </fileSet> </fileSets> </inline> </assembly> </build> <run> <ports> <port>9000:8080</port> </ports> <volumes> <bind> <volume>~/.aws/credentials:/root/.aws/credentials</volume> </bind> </volumes> </run> <copy> <entries> <entry> <containerPath>/opt/lambda-java17-layer-arm64.zip</containerPath> <hostDirectory>${project.build.directory}</hostDirectory> </entry> </entries> </copy> </image> <image> <name>${project.artifactId}-amd64</name> <build> <!-- <env> <JAVA_TOOL_OPTIONS>${native.image.arguments.amd64}</JAVA_TOOL_OPTIONS> </env> --> <from>amazonlinux:2@sha256:${sha256.amd64}</from> <workdir>opt</workdir> <runCmds> <runCmd>yum -y update</runCmd> <runCmd>yum install -y tar zip gzip binutils</runCmd> <runCmd>curl -4 -L ${jdk17.url.amd64} -o /usr/lib/jdk17.tar.gz</runCmd> <runCmd>tar -xvzf /usr/lib/jdk17.tar.gz</runCmd> <runCmd>mv ${jdk17.folder.amd64} /usr/lib/jdk17</runCmd> <runCmd>/usr/lib/jdk17/bin/jlink --add-modules "$(/usr/lib/jdk17/bin/java --list-modules | cut -f1 -d'@' | tr '\n' ',')" --compress 0 --no-man-pages --no-header-files --strip-debug --output /opt/jdk17-slim</runCmd> <runCmd>find /opt/jdk17-slim/lib -name *.so -exec strip -p --strip-unneeded {} \;</runCmd> <runCmd>/usr/lib/jdk17/bin/java -Xshare:dump -version</runCmd> <runCmd>rm /opt/jdk17-slim/lib/classlist</runCmd> <runCmd>cp /usr/lib/jdk17/lib/server/classes.jsa /opt/jdk17-slim/lib/server/classes.jsa</runCmd> <runCmd>zip -r /lambda-java17-layer-amd64.zip *</runCmd> <runCmd>mv /lambda-java17-layer-amd64.zip /opt/</runCmd> </runCmds> <entryPoint>/opt/bootstrap</entryPoint> <assembly> <name>opt</name> <inline> <dependencySets> <dependencySet> <useProjectArtifact>false</useProjectArtifact> <includes> <include>com.amazonaws:aws-lambda-java-core</include> <include>com.amazonaws:aws-lambda-java-serialization</include> <include>io.microlam:aws-lambda-java-runtime-interface-client</include> </includes> </dependencySet> </dependencySets> <fileSets> <fileSet> <directory>${project.basedir}</directory> <includes> <include>bootstrap</include> </includes> <outputDirectory>/</outputDirectory> </fileSet> </fileSets> </inline> </assembly> </build> <run> <ports> <port>9000:8080</port> </ports> <volumes> <bind> <volume>~/.aws/credentials:/root/.aws/credentials</volume> </bind> </volumes> </run> <copy> <entries> <entry> <containerPath>/opt/lambda-java17-layer-amd64.zip</containerPath> <hostDirectory>${project.build.directory}</hostDirectory> </entry> </entries> </copy> </image> </images> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> <configuration> <keyname>${gpg.keyname}</keyname> <executable>/usr/local/bin/gpg</executable> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.7</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> <dependencies> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.15</version> <!-- apparently this needs to be exactly this version --> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>3.0.0-M4</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-help-plugin</artifactId> <version>3.2.0</version> </plugin> </plugins> </build> <dependencyManagement> <dependencies> <dependency> <groupId>io.microlam</groupId> <artifactId>microlam-bom</artifactId> <version>0.4.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-serialization</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-core</artifactId> </dependency> <dependency> <groupId>io.microlam</groupId> <artifactId>aws-lambda-java-runtime-interface-client</artifactId> </dependency> </dependencies> <profiles> <profile> <id>build-layers</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <plugins> </plugins> </build> </profile> </profiles> </project>