Im Folgenden finden Sie die Schritte zum Vorbereiten der Java SDK-Entwicklungsumgebung für Oracle Cloud Infrastructure (OCI). Da ich die Umgebung aufbaue, während ich mich jedes Mal daran erinnere, werde ich sie als Memorandum einführen.
Die vorzubereitende Entwicklungsumgebung ist wie folgt.
Wir werden Maven verwenden, um das OCI SDK (Java) für Visual Studio Code zu aktivieren.
Vistual Studio Code (Remote Development)
Installieren Sie das Java Extension Pack
OpenJDK 11
Wenn Sie mit Java in Visual Studio Code arbeiten, können Sie verschiedene Funktionen mit JDK 11 oder höher verwenden.
sudo yum install -y java-11-openjdk java-11-openjdk-devel java-11-openjdk-src
Maven 3.6.3 Install
Installieren Sie Maven, um die Abhängigkeiten zu verwalten.
Überprüfen Sie die Download-URL unter der folgenden URL. https://maven.apache.org/download.cgi
Laden Sie die Datei tar.gz unter CentOS unter der URL herunter, die Sie auf der Downloadseite kopiert haben
mkdir ~/maven
cd ~/maven
wget https://ftp.jaist.ac.jp/pub/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
Führen Sie zur Installation die folgenden Schritte aus. https://maven.apache.org/install.html
Entpacken Sie die Datei tar.gz.
tar xfvz apache-maven-3.6.3-bin.tar.gz
Einstellungen für Umgebungsvariablen Zu bashrc hinzugefügt
echo 'export PATH=$PATH:$HOME/maven/apache-maven-3.6.3/bin' >> ~/.bashrc
bashrc reload
source ~/.bashrc
Stellen Sie sicher, dass der Befehl mvn ausführbar ist
[opc@maven maven]$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /home/opc/maven/apache-maven-3.6.3
Java version: 1.8.0_252, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-1127.8.2.el7.x86_64", arch: "amd64", family: "unix"
[opc@maven maven]$
Maven Directory
Erstellen Sie ein Arbeitsverzeichnis.
mkdir -p ~/java
cd ~/java
Erstellt von Maven Project. Erstellen Sie es mit dem Namen "ociproject".
mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-simple \
-DarchetypeVersion=1.4 \
-DgroupId=com.example \
-DartifactId=ociproject \
-Dversion=1.0-SNAPSHOT \
-Dpackage=com.example
Bearbeiten Sie nach dem Erstellen des Maven-Projekts die Datei pom.xml und legen Sie die Abhängigkeiten fest.
--Überprüfen Sie die neueste OCI SDK-Version, z. B. "
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Lesen Sie das Maven Central Repository und fügen Sie das hinzu, was Sie benötigen https://search.maven.org/search?q=g:com.oracle.oci.sdk
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-bom</artifactId>
<!-- replace the version below with your required version -->
<version>1.25.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-audit</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-core</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-database</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-identity</artifactId>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>
Build-Version anpassen (OCI SDK erfordert 8)
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
Referenz: Beschreiben Sie die gesamte Datei pom.xml
<?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>
<groupId>com.example</groupId>
<artifactId>ociproject</artifactId>
<version>1.0-SNAPSHOT</version>
<name>ociproject</name>
<description>A simple ociproject.</description>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-bom</artifactId>
<!-- replace the version below with your required version -->
<version>1.25.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-audit</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-core</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-database</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-identity</artifactId>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
</plugin>
</plugins>
</reporting>
</project>
Lädt die in Abhängigkeiten angegebenen Bibliotheken herunter. Es wird als Ziel / Abhängigkeit im Verzeichnis für Maven-Projekt heruntergeladen.
cd ~/java/ociproject
mvn dependency:copy-dependencies
Bestätigung der heruntergeladenen JAR-Dateien.
[opc@vault01 ociproject]$ ls -la target/dependency/
total 19252
drwxrwxr-x. 2 opc opc 4096 Nov 15 14:11 .
drwxrwxr-x. 3 opc opc 24 Nov 15 14:11 ..
-rw-rw-r--. 1 opc opc 3482 Nov 15 14:11 animal-sniffer-annotations-1.14.jar
-rw-rw-r--. 1 opc opc 14768 Nov 15 14:11 aopalliance-repackaged-2.5.0-b42.jar
-rw-rw-r--. 1 opc opc 796532 Nov 15 14:11 bcpkix-jdk15on-1.60.jar
-rw-rw-r--. 1 opc opc 4189874 Nov 15 14:11 bcprov-jdk15on-1.60.jar
-rw-rw-r--. 1 opc opc 31547 Nov 15 14:11 checker-compat-qual-2.0.0.jar
-rw-rw-r--. 1 opc opc 284184 Nov 15 14:11 commons-codec-1.10.jar
-rw-rw-r--. 1 opc opc 208700 Nov 15 14:11 commons-io-2.5.jar
-rw-rw-r--. 1 opc opc 434678 Nov 15 14:11 commons-lang3-3.4.jar
-rw-rw-r--. 1 opc opc 13704 Nov 15 14:11 error_prone_annotations-2.1.3.jar
-rw-rw-r--. 1 opc opc 2590643 Nov 15 14:11 guava-25.0-android.jar
-rw-rw-r--. 1 opc opc 186763 Nov 15 14:11 hk2-api-2.5.0-b42.jar
-rw-rw-r--. 1 opc opc 189454 Nov 15 14:11 hk2-locator-2.5.0-b42.jar
-rw-rw-r--. 1 opc opc 135317 Nov 15 14:11 hk2-utils-2.5.0-b42.jar
-rw-rw-r--. 1 opc opc 8782 Nov 15 14:11 j2objc-annotations-1.1.jar
-rw-rw-r--. 1 opc opc 66894 Nov 15 14:11 jackson-annotations-2.9.8.jar
-rw-rw-r--. 1 opc opc 325619 Nov 15 14:11 jackson-core-2.9.8.jar
-rw-rw-r--. 1 opc opc 1347236 Nov 15 14:11 jackson-databind-2.9.8.jar
-rw-rw-r--. 1 opc opc 33391 Nov 15 14:11 jackson-datatype-jdk8-2.9.8.jar
-rw-rw-r--. 1 opc opc 100674 Nov 15 14:11 jackson-datatype-jsr310-2.9.8.jar
-rw-rw-r--. 1 opc opc 34610 Nov 15 14:11 jackson-module-jaxb-annotations-2.8.10.jar
-rw-rw-r--. 1 opc opc 737884 Nov 15 14:11 javassist-3.22.0-CR2.jar
-rw-rw-r--. 1 opc opc 26366 Nov 15 14:11 javax.annotation-api-1.2.jar
-rw-rw-r--. 1 opc opc 2497 Nov 15 14:11 javax.inject-1.jar
-rw-rw-r--. 1 opc opc 5951 Nov 15 14:11 javax.inject-2.5.0-b42.jar
-rw-rw-r--. 1 opc opc 127509 Nov 15 14:11 javax.ws.rs-api-2.1.jar
-rw-rw-r--. 1 opc opc 2254 Nov 15 14:11 jcip-annotations-1.0.jar
-rw-rw-r--. 1 opc opc 181563 Nov 15 14:11 jersey-client-2.27.jar
-rw-rw-r--. 1 opc opc 1140395 Nov 15 14:11 jersey-common-2.27.jar
-rw-rw-r--. 1 opc opc 69758 Nov 15 14:11 jersey-entity-filtering-2.27.jar
-rw-rw-r--. 1 opc opc 62547 Nov 15 14:11 jersey-hk2-2.27.jar
-rw-rw-r--. 1 opc opc 73055 Nov 15 14:11 jersey-media-json-jackson-2.27.jar
-rw-rw-r--. 1 opc opc 77882 Nov 15 14:11 json-smart-1.3.1.jar
-rw-rw-r--. 1 opc opc 19936 Nov 15 14:11 jsr305-3.0.2.jar
-rw-rw-r--. 1 opc opc 250436 Nov 15 14:11 nimbus-jose-jwt-4.9.jar
-rw-rw-r--. 1 opc opc 75337 Nov 15 14:11 oci-java-sdk-audit-1.5.2.jar
-rw-rw-r--. 1 opc opc 247871 Nov 15 14:11 oci-java-sdk-common-1.5.2.jar
-rw-rw-r--. 1 opc opc 4010670 Nov 15 14:11 oci-java-sdk-core-1.5.2.jar
-rw-rw-r--. 1 opc opc 1380390 Nov 15 14:11 oci-java-sdk-database-1.5.2.jar
-rw-rw-r--. 1 opc opc 20235 Nov 15 14:11 osgi-resource-locator-1.0.1.jar
-rw-rw-r--. 1 opc opc 41203 Nov 15 14:11 slf4j-api-1.7.25.jar
-rw-rw-r--. 1 opc opc 63777 Nov 15 14:11 validation-api-1.1.0.Final.jar
Gehe zu Die Definition des Quellcodes ist über mvn install in Visual Studio Code möglich.
mvn install
Das OCI SDK verwendet log4j. Wenn Sie log4j nicht festlegen, wird weiterhin eine Warnung angezeigt. Erstellen Sie es diesmal im Verzeichnis src.
mkdir $HOME/java/ociproject/src/main/resources
Erstellen Sie log4j.properties
cat <<'EOF' >$HOME/java/ociproject/src/main/resources/log4j.properties
log4j.rootLogger=ERROR,stdout
log4j.logger.com.endeca=INFO
# Logger for crawl metrics
log4j.logger.com.endeca.eidi.web.metrics=INFO
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
EOF
Sample Code
Die Entwicklungsumgebung ist bis zu diesem Punkt bereit. Lassen Sie uns Beispielcode ausführen, um die Funktion des SDK zu überprüfen. Ein Beispielcode, der eine Liste von Recheninstanzen anzeigt und diese an die Standardausgabe ausgibt.
Ich möchte keinen privaten Schlüssel für die Authentifizierung haben, daher verwende ich das Instanzprinzip. https://qiita.com/sugimount/items/159852749851282a33e6
Sample Code
package com.example;
import com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider;
import com.oracle.bmc.core.ComputeClient;
import com.oracle.bmc.core.requests.ListInstancesRequest;
import com.oracle.bmc.core.responses.ListInstancesResponse;
/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) {
System.out.println("Hello World!");
InstancePrincipalsAuthenticationDetailsProvider provider = InstancePrincipalsAuthenticationDetailsProvider
.builder().build();
ComputeClient computeClient = new ComputeClient(provider);
// ListInstancesRequest.builder().build();
ListInstancesRequest listInstancesRequest = ListInstancesRequest.builder()
.compartmentId("ocid1.tenancy.oc1..aaaaaaaahysodjbc46bsbxjwtu4hcxos6uxhhldgeeq5yvw4vrwsdz34sfta")
.build();
ListInstancesResponse response = computeClient.listInstances(listInstancesRequest);
// System.out.println(response);
computeClient.close();
}
}
Ausführungsbeispiel
[opc@java01 ociproject]$ cd /home/opc/java/ociproject ; /usr/lib/jvm/java-11-openjdk-11.0.9.11-0.0.1.el7_9.x86_64/bin/java -Dfile.encoding=UTF-8 @/tmp/cp_5zz9fok3mfupnsg33snsk49h.argfile com.example.App
Start!
bastion_onpremis
java01
private_machine01
vault01
vyos
End!
https://docs.cloud.oracle.com/ja-jp/iaas/Content/API/SDKDocs/javasdkgettingstarted.htm
Recommended Posts