[Oracle Cloud] Erstellen Sie eine Entwicklungsumgebung für das OCI Java SDK (Visual Studio Code, Maven, CentOS).

Einführung

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

1605448558140.png

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

1587385604751.png

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. " 1.25.4 </ version>".

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

Einstellungen in Bezug auf log4j

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!

Referenz-URL

https://docs.cloud.oracle.com/ja-jp/iaas/Content/API/SDKDocs/javasdkgettingstarted.htm

Recommended Posts

[Oracle Cloud] Erstellen Sie eine Entwicklungsumgebung für das OCI Java SDK (Visual Studio Code, Maven, CentOS).
Ich habe "Visual Studio Code Installer für Java" ausprobiert, mit dem sofort eine Java-Entwicklungsumgebung erstellt werden kann
Eine Aufzeichnung zum Einrichten einer Java-Entwicklungsumgebung mit Visual Studio Code
Erstellen Sie eine Java-Programmentwicklungsumgebung mit Visual Studio Code
Erstellen Sie mit Java + Spring eine Web-APP-Entwicklungsumgebung mit Visual Studio Code
Lassen Sie uns eine Java-Entwicklungsumgebung erstellen (Aktualisierung)
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Erstellen Sie eine Docker-Umgebung für Oracle 11g XE
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Erstellen Sie eine Java-Entwicklungsumgebung mit jenv auf Ihrem Mac
Erstellen Sie eine gcloud-Entwicklungsumgebung auf einem centos8-Container
Erstellen Sie eine Java, JavaScript-Teamentwicklungsumgebung (Problemstellung)
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Java mit Visual Studio Code
Erstellen Sie eine Java- und JavaScript-Teamentwicklungsumgebung (Gradle-Umgebungskonstruktion)
Entwicklung von Spring5 MVC-Webanwendungen mit Visual Studio Code Environment-Konstruktion (Installation von JDK11 / Maven / Tomcat / Visual Studio Code)
Erstellen einer Java-Entwicklungsumgebung (für Mac)
Java-Entwicklungsumgebung (Mac, VS Code)
Lassen Sie uns Docker unter Windows 10 installieren und eine Überprüfungsumgebung für CentOS 8 erstellen!
Erstellen einer Flutter-Entwicklungsumgebung unter Win10 --- Flutter SDK Install (2020-Aufbewahrungsversion)
Entwicklung von Spring5 MVC-Webanwendungen mit Visual Studio Code Maven-Vorlagenerstellung
Erstellen Sie eine Java 8-Entwicklungsumgebung mit AWS Cloud 9
[Mac] Installieren Sie Java in Visual Studio Code
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
[Memo] Erstellen Sie mit Docker ganz einfach eine CentOS 8-Umgebung
Fügen Sie in Java in Visual Studio Code die Option --enable-Preview hinzu
[Windows] [IntelliJ] [Java] [Tomcat] Erstellen Sie mit IntelliJ eine Umgebung für Tomcat 9
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Einführung]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Einführung]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [99. Mod-Ausgabe]
[Anfänger] Installieren Sie das Java-Entwicklungstool in der Cloud9-Entwicklungsumgebung.
[Mac] Java in Visual Studio Code installieren (VS Code)
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
[Für Anfänger] Bis zum Erstellen einer Webanwendungsentwicklungsumgebung mit Java unter Mac OS
[SAP] Erstellen Sie eine Entwicklungsumgebung mit NW AS ABAP Developer Edition (2). Verbinden Sie sich mit der Cloud-Plattform