[First Java] Créez quelque chose qui fonctionne avec Intellij pour le moment

Aperçu

C'est la procédure pour les débutants en Java pour créer un programme avec Intellij, le conditionner et créer quelque chose qui fonctionne pour le moment.

Cette fois, nous allons créer un programme qui n'acquiert que le contenu du titre sur la première page de Keta. Plutôt que d'étudier Java, cela ressemble plus à un tutoriel pour comprendre le flux de développement Java.

environnement

Veuillez télécharger et installer jdk et Intellij à partir du lien ci-dessus.

Créer un projet

Après avoir lancé Intellij, cliquez sur Créer un nouveau projet

Screen Shot 2017-12-27 at 9.49.30.png

Sélectionnez «Maven» et cliquez sur «Suivant»

Screen Shot 2017-12-27 at 9.50.50.png

Entrez les valeurs suivantes et cliquez sur «Suivant»

article valeur
GroupId jp.sample
ArtifactId sample-artifact
Version Défaut
Screen Shot 2017-12-27 at 10.00.47.png

Entrez le nom du projet et l'emplacement où vous souhaitez placer le fichier de projet et cliquez sur Terminer

Screen Shot 2017-12-27 at 10.01.23.png

Si l'écran suivant s'affiche, il est réussi.

Screen Shot 2017-12-27 at 10.02.46.png

Créer pom.xml

Dossier de gestion de projet. Est-ce quelque chose comme un Gemfile dans Rails?

Créez avec le contenu suivant.

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>jp.sample</groupId>
    <artifactId>sample-artifact</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.10.2</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <finalName>sample-${project.version}</finalName>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>jp.sample.Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Après avoir ajouté à pom.xml, Si vous voyez «Les projets Maven doivent être importés» en bas à droite, cliquez sur «Activer l'importation automatique»

Screen Shot 2017-12-28 at 17.53.45.png

Description de chaque paramètre

dependencies Paramètres de bibliothèque dépendants. Cette fois, nous utiliserons les bibliothèques suivantes.

Nom de la bibliothèque Utilisation
Jsoup Pour gratter
junit pour le test

properties Décrit pour éviter les erreurs suivantes lors de la construction.

[ERROR] Source option 1.5 is no longer supported. Use 1.6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.

maven-assembly-plugin Un plug-in pour créer un package qui inclut toutes les dépendances. Spécifiez Main-Class dans archive-> manifest. Cela élimine le besoin de Manifest.MF.

<archive>
    <manifest>
        <mainClass>jp.sample.Main</mainClass>
    </manifest>
</archive>

Créer un programme

Créez un programme pour gratter.

Tout d'abord, créez une classe Java.

Screen Shot 2017-12-28 at 17.55.34.png

Créez une classe nommée Main.

Screen Shot 2017-12-27 at 11.43.07.png

Une fois créé, écrivez ce qui suit dans Main.java.

Main.java


package jp.sample;

import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        final ScrapeService scrapeService = new ScrapeService();
        System.out.println(scrapeService.getTitle());
    }
}

Créez ScrapeService.java de la même manière. C'est un programme pour obtenir le titre de Keta.

ScrapeService.java


package jp.sample;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.IOException;

public class ScrapeService {
    private String url = "https://qiita.com/";

    public String getTitle() throws IOException {
        Document document = Jsoup.connect(url).get();
        Elements title = document.select("title");
        return title.text();
    }
}

Ouvrez Main.java, cliquez sur le bouton de lecture à gauche de public class Main {, et cliquez sur Run'Main.main () 'pour exécuter le programme.

Screen Shot 2017-12-28 at 17.11.01.png

Ensuite, le résultat suivant sera affiché dans le débogueur ci-dessous. Si le titre de Keta est affiché, il réussit.

Screen Shot 2017-12-28 at 17.13.16.png

Créer du code de test

Ensuite, écrivez le code de test.

Ouvrez ScrapeService.java, avec le curseur sur le nom de classe ScrapeService, et appuyez sur ʻAlt + ʻEnter.

Ensuite, comme le montre l'image ci-dessous, l'option «Créer un test» s'affiche. Cliquez dessus.

Screen Shot 2017-12-28 at 17.15.49.png

Cette fois, j'utiliserai JUnit4. Si vous voyez un bouton appelé «FIX», cliquez dessus. Il existe une liste de méthodes testables sous Générer des méthodes de test pour:, vérifiez-les et cliquez sur OK.

Screen Shot 2017-12-28 at 17.57.41.png

Ensuite, le fichier de code de test est créé comme indiqué ci-dessous.

Screen Shot 2017-12-28 at 17.59.34.png

Modifiez-le ensuite comme suit.

LoginServiceTest.java


package jp.sample;

import org.junit.Test;
import java.io.IOException;
import static org.junit.Assert.assertEquals;

public class ScrapeServiceTest {

    @Test
    public void getTitle() throws IOException {
        final ScrapeService scrapeService = new ScrapeService();
        assertEquals("Qiita - A technical knowledge sharing platform for programmers.", scrapeService.getTitle());
    }
}

Cliquez sur le bouton de lecture à gauche de public class LoginServiceTest {ʻet cliquez Run'Main.main () '` pour lancer le test.

Screen Shot 2017-12-28 at 18.05.53.png

S'il est affiché dans le débogueur comme indiqué ci-dessous, le test réussit.

Screen Shot 2017-12-28 at 18.06.41.png

build Construire et empaqueter. À partir de là, vous travaillerez à partir de la ligne de commande, et non d'Intellij.

Accédez au répertoire sampleartifact / où se trouve pom.xml et exécutez la commande suivante:

$ mvn package

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running jp.sample.ScrapeServiceTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.786 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ sample-artifact ---
[INFO] Building jar: /Users/username/IdeaProjects/sampleartifact/target/sample-artifact-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-assembly-plugin:3.1.0:single (make-assembly) @ sample-artifact ---
[INFO] Building jar: /Users/username/IdeaProjects/sampleartifact/target/sample-1.0-SNAPSHOT-jar-with-dependencies.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.910 s
[INFO] Finished at: 2017-12-28T18:10:59+09:00
[INFO] Final Memory: 20M/67M
[INFO] ------------------------------------------------------------------------

Exécutez le fichier jar généré

Un fichier jar appelé sample-1.0-SNAPSHOT-jar-with-dependencies.jar a été généré dans sampleartifact / target, alors essayez de l'exécuter.

$ java -jar sample-1.0-SNAPSHOT-jar-with-dependencies.jar
Qiita - A technical knowledge sharing platform for programmers.

Si le titre de Keta s'affiche ainsi, c'est réussi!

mvn install mvn install générera un fichier non seulement sous target, mais aussi dans le référentiel local sous~ / .m2 /.

$ mvn install
$ ls -1 -a ~/.m2/repository/jp/sample/sample-artifact/1.0-SNAPSHOT/
.
..
_remote.repositories
maven-metadata-local.xml
sample-artifact-1.0-SNAPSHOT-jar-with-dependencies.jar
sample-artifact-1.0-SNAPSHOT.jar
sample-artifact-1.0-SNAPSHOT.pom

Supprimer le répertoire cible

Vous pouvez le supprimer avec la commande suivante. Il est utilisé pour vider la cible puis la reconstruire.

$ mvn clean

référence

Recommended Posts

[First Java] Créez quelque chose qui fonctionne avec Intellij pour le moment
Introduction à Java pour la première fois # 2
Apprendre pour la première fois java [Introduction]
Utilisez une bibliothèque Java externe pour le moment
Exécutez Dataflow, Java, Streaming pour le moment
Apprentissage pour la première fois des expressions et opérateurs Java # 3
Mémo d'apprentissage lors de l'apprentissage de Java pour la première fois (mémo d'apprentissage personnel)
Modéliser Digimon avec DDD pour la première fois Partie 1
Spring Boot pour la première fois
Accédez à l'API Web avec Get sur Android et traitez Json (Java pour le moment)
Spring AOP pour la première fois
Java14 est sorti, alors j'ai essayé d'enregistrer pour le moment
Créez quelque chose comme Enum de Java avec Typescript
Java12 est sorti, alors j'ai essayé l'expression switch pour le moment
Liste de réglages de Glassfish que je souhaite conserver pour le moment
[Communication Socket (Java)] Impressions de la mise en œuvre de la communication Socket dans la pratique pour la première fois
Première programmation de ma vie Java 1st Hello World
[Java] Réglez l'heure depuis le navigateur avec jsoup
Murs touchés par le premier Rspec
Impressions et doutes sur l'utilisation de Java pour la première fois dans Android Studio
Développement d'Android Studio pour la première fois (pour les débutants)
J'ai essayé de toucher Docker pour la première fois
Je veux que vous utilisiez Scala comme meilleur Java pour le moment
Installez Amazon Corretto (préversion) pour le moment
J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java
[Deep Learning from scratch] en Java 1. Pour le moment, différenciation et différenciation partielle
Mémo à faire pour le moment lors de la construction de la série CentOS 6 avec VirtualBox
[Android studio / Java] Ce que vous ne comprenez pas lorsque vous le touchez pour la première fois
[Bases de Java] Créons un triangle avec une instruction for
Essayez d'exécuter Spring Cloud Config pour le moment
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
Commande pour essayer d'utiliser Docker pour le moment
Comment étudier le kotlin pour la première fois ~ Partie 2 ~
Comment étudier le kotlin pour la première fois ~ Partie 1 ~
Résumé des points que les programmeurs Java trouvent glissants lorsqu'ils lisent la source Kotlin pour la première fois
Pour le traitement d'agrégation qui ne peut pas être effectué avec la fonction prédéfinie Hive, essayez d'abord la fonction Reflect.
Que ce soit pour faire du côté serveur au moment de la reconstruction du système avec Kotlin ou Java
[Rails] J'ai essayé d'utiliser la méthode button_to pour la première fois
Planifiez l'optimisation avec une IA qui comprend la raison du résultat
Avec le logiciel que je fais depuis longtemps ...
[DL4J] Premier apprentissage en profondeur Java (reconnaissance de caractères manuscrits à l'aide d'un réseau neuronal entièrement connecté)
Comment gérer le type auquel j'ai pensé en écrivant un programme Java pendant 2 ans
Réfléchissez lorsque Rails (turbolinks) ne charge pas la page pour la première fois
Générez des couleurs.xml pour les thèmes sombres avec la technologie qui prend en charge Force Dark
[WSL] Solution pour le phénomène que 404 est affiché lors de la tentative d'insertion de Java avec apt (mémo personnel)
Expérimentons le flux d'octroi de code d'autorisation avec Spring Security OAuth-Partie 2: Créer une application pour le moment