[Oracle Cloud] Créer un environnement de développement pour OCI Java SDK (Visual Studio Code, Maven, CentOS)

introduction

Voici les étapes de préparation de l'environnement de développement du SDK Java pour Oracle Cloud Infrastructure (OCI). Puisque je construis l'environnement en me souvenant à chaque fois, je vais le présenter sous forme de mémorandum.

L'environnement de développement à préparer est le suivant.

Nous utiliserons Maven pour activer le SDK OCI (Java) pour Visual Studio Code.

Vistual Studio Code (Remote Development)

Installer le pack d'extension Java

1605448558140.png

OpenJDK 11

Lorsque vous travaillez avec Java dans Visual Studio Code, vous pouvez utiliser diverses fonctions avec JDK 11 ou supérieur.

sudo yum install -y java-11-openjdk java-11-openjdk-devel java-11-openjdk-src

Maven 3.6.3 Install

Installez Maven pour gérer les dépendances.

Vérifiez l'URL de téléchargement à l'URL suivante. https://maven.apache.org/download.cgi

1587385604751.png

Téléchargez le fichier tar.gz sur CentOS en utilisant l'URL que vous avez copiée sur la page de téléchargement

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

Suivez les étapes ci-dessous pour installer. https://maven.apache.org/install.html

Décompressez le fichier tar.gz

tar xfvz apache-maven-3.6.3-bin.tar.gz

Paramètres des variables d'environnement Ajouté à bashrc

echo 'export PATH=$PATH:$HOME/maven/apache-maven-3.6.3/bin' >> ~/.bashrc

rechargement bashrc

source ~/.bashrc

Assurez-vous que la commande mvn est exécutable

[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

Créez un répertoire de travail.

mkdir -p ~/java
cd ~/java

Créé par Maven Project. Créez-le avec le nom «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

Après avoir créé le projet Maven, modifiez pom.xml et définissez les dépendances.

--Erreur si vous n'entrez pas com.sun.activation

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.

Reportez-vous au référentiel central Maven et ajoutez ce dont vous avez besoin 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>

Ajuster la version de build (OCI SDK nécessite 8)

    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

Référence: Décrivez tout 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>

Télécharge les bibliothèques spécifiées dans les dépendances. Il sera téléchargé vers la cible / dépendance dans le répertoire du projet Maven.

cd ~/java/ociproject
mvn dependency:copy-dependencies

Confirmation des fichiers jar téléchargés.

[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

Goto La définition du code source est possible à partir de Visual Studio Code par mvn install.

mvn install

Paramètres liés à log4j

Le SDK OCI utilise log4j. Si vous ne définissez pas log4j, Avertissement continuera à apparaître. Cette fois, créez-le sous le répertoire src.

mkdir $HOME/java/ociproject/src/main/resources

Créer 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

L'environnement de développement est prêt jusqu'à présent. Exécutons un exemple de code pour vérifier le fonctionnement du SDK. Un exemple de code qui affiche une liste d'instances de calcul et les génère en sortie standard.

Je ne veux pas de clé privée pour l'authentification, j'utilise donc le principe d'instance. 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();
    }
}

Exemple d'exécution

[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!

URL de référence

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

Recommended Posts

[Oracle Cloud] Créer un environnement de développement pour OCI Java SDK (Visual Studio Code, Maven, CentOS)
J'ai essayé «Visual Studio Code Installer pour Java» qui peut créer immédiatement un environnement de développement Java
Un enregistrement de la configuration d'un environnement de développement Java avec Visual Studio Code
Créer un environnement de développement de programme Java avec Visual Studio Code
Créer un environnement de développement Web APP avec Java + Spring avec Visual Studio Code
Créons un environnement de développement Java (mise à jour)
Créer un environnement de développement d'applications Web Java avec Docker pour Mac Part2
Créer un environnement de développement pour Docker, Java, vs code
Créer un environnement Docker pour Oracle 11g XE
Créer un environnement de développement Java avec VS Code
Créez un environnement de développement Java à l'aide de jenv sur votre Mac
Créer un environnement de développement gcloud sur un conteneur centos8
Créer un environnement de développement d'équipe Java, JavaScript (résolution de problèmes)
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
Java avec Visual Studio Code
Créer un environnement de développement d'équipe Java et JavaScript (construction d'environnement gradle)
Développement d'applications Web Spring5 MVC avec construction de l'environnement de code Visual Studio (installation de JDK11 / Maven / Tomcat / Visual Studio Code)
Création d'un environnement de développement Java (pour Mac)
Environnement de développement Java (Mac, VS Code)
Installons Docker sur Windows 10 et créons un environnement de vérification pour CentOS 8!
Création d'un environnement de développement Flutter sur Win10 --- Installation du SDK Flutter (version de préservation 2020)
Développement d'applications Web Spring5 MVC avec création de modèles Visual Studio Code Maven
Créer un environnement de développement Java 8 avec AWS Cloud 9
[Mac] Installer Java dans Visual Studio Code
Créer un environnement de développement pour Docker + Rails6 + Postgresql
[Memo] Créez facilement un environnement CentOS 8 avec Docker
Ajouter l'option --enable-preview dans Java dans Visual Studio Code
[Windows] [IntelliJ] [Java] [Tomcat] Créer un environnement pour Tomcat 9 avec IntelliJ
[Java] Créons un Minecraft Mod 1.14.4 [Introduction]
[Java] Créons un Minecraft Mod 1.16.1 [Introduction]
[Java] Créons un Minecraft Mod 1.14.4 [99. Mod output]
[Débutant] Installez l'outil de développement java dans l'environnement de développement cloud9.
[Mac] Installer Java dans Visual Studio Code (VS Code)
Créer un environnement de développement Spring Boot avec docker
[Pour les débutants] Jusqu'à la création d'un environnement de développement d'applications Web utilisant Java sur Mac OS
[SAP] Créez un environnement de développement avec NW AS ABAP Developer Edition (2) Connectez-vous à Cloud Platform