[Erstes Java] Machen Sie etwas, das vorerst mit Intellij funktioniert

Überblick

Dies ist das Verfahren für Java-Anfänger, um ein Programm mit Intellij zu erstellen, es zu verpacken und etwas zu erstellen, das vorerst funktioniert.

Dieses Mal werden wir ein Programm erstellen, das nur den Inhalt des Titels auf der obersten Seite von Keta erfasst. Anstatt Java zu studieren, ist es eher ein Tutorial zum Verständnis des Ablaufs der Java-Entwicklung.

Umgebung

Bitte laden Sie jdk und Intellij über den obigen Link herunter und installieren Sie es.

Ein Projekt erstellen

Klicken Sie nach dem Start von Intellij auf "Neues Projekt erstellen"

Screen Shot 2017-12-27 at 9.49.30.png

Wählen Sie "Maven" und klicken Sie auf "Weiter"

Screen Shot 2017-12-27 at 9.50.50.png

Geben Sie die folgenden Werte ein und klicken Sie auf "Weiter"

Artikel Wert
GroupId jp.sample
ArtifactId sample-artifact
Version Standard
Screen Shot 2017-12-27 at 10.00.47.png

Geben Sie den Projektnamen und den Speicherort ein, an dem Sie die Projektdatei ablegen möchten, und klicken Sie auf "Fertig stellen"

Screen Shot 2017-12-27 at 10.01.23.png

Wenn der folgende Bildschirm angezeigt wird, ist er erfolgreich.

Screen Shot 2017-12-27 at 10.02.46.png

Erstellen Sie pom.xml

Datei für das Projektmanagement. Ist es so etwas wie ein Gemfile in Rails?

Erstellen Sie mit den folgenden Inhalten.

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>

Nach dem Hinzufügen zu pom.xml Wenn unten rechts "Maven-Projekte müssen importiert werden" angezeigt wird, klicken Sie auf "Auto-Import aktivieren"

Screen Shot 2017-12-28 at 17.53.45.png

Beschreibung jeder Einstellung

dependencies Abhängige Bibliothekseinstellungen. Dieses Mal werden wir die folgenden Bibliotheken verwenden.

Bibliotheksname Verwenden
Jsoup Zum Schaben
junit zum Test

properties Beschrieben, um die folgenden Fehler beim Erstellen zu vermeiden.

[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 Ein Plug-In zum Erstellen eines Pakets, das alle Abhängigkeiten enthält. Geben Sie die Hauptklasse im Archiv-> Manifest an. Dadurch entfällt die Notwendigkeit von Manifest.MF.

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

Programm erstellen

Erstellen Sie ein Programm zum Kratzen.

Erstellen Sie zunächst eine Java-Klasse.

Screen Shot 2017-12-28 at 17.55.34.png

Erstellen Sie eine Klasse mit dem Namen "Main".

Screen Shot 2017-12-27 at 11.43.07.png

Schreiben Sie nach der Erstellung Folgendes in 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());
    }
}

Erstellen Sie ScrapeService.java auf die gleiche Weise. Es ist ein Programm, um den Titel Keta zu bekommen.

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();
    }
}

Öffnen Sie Main.java, klicken Sie auf die Wiedergabetaste links neben "public class Main {" und klicken Sie auf "Run'Main.main ()", um das Programm auszuführen.

Screen Shot 2017-12-28 at 17.11.01.png

Das folgende Ergebnis wird dann im folgenden Debugger angezeigt. Wenn der Titel von Keta angezeigt wird, ist er erfolgreich.

Screen Shot 2017-12-28 at 17.13.16.png

Testcode erstellen

Schreiben Sie als nächstes den Testcode.

Öffnen Sie ScrapeService.java mit dem Cursor auf den Klassennamen "ScrapeService" und drücken Sie "Alt" + "Enter".

Dann wird, wie in der Abbildung unten gezeigt, die Option "Test erstellen" angezeigt. Klicken Sie darauf.

Screen Shot 2017-12-28 at 17.15.49.png

Dieses Mal werde ich JUnit4 verwenden. Wenn Sie eine Schaltfläche namens "FIX" sehen, klicken Sie darauf. Unter "Testmethoden generieren für:" finden Sie eine Liste testbarer Methoden. Überprüfen Sie diese und klicken Sie auf "OK".

Screen Shot 2017-12-28 at 17.57.41.png

Anschließend wird die Testcodedatei wie unten gezeigt erstellt.

Screen Shot 2017-12-28 at 17.59.34.png

Bearbeiten Sie es dann wie folgt.

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());
    }
}

Klicken Sie auf die Wiedergabetaste links neben "public class LoginServiceTest {" und klicken Sie auf "Run'Main.main ()", um den Test auszuführen.

Screen Shot 2017-12-28 at 18.05.53.png

Wenn es wie unten gezeigt im Debugger angezeigt wird, ist der Test erfolgreich.

Screen Shot 2017-12-28 at 18.06.41.png

build Erstellen und verpacken. Von hier an arbeiten Sie über die Befehlszeile und nicht mehr über Intellij.

Wechseln Sie in das Verzeichnis sampleartifact /, in dem sich pom.xml befindet, und führen Sie den folgenden Befehl aus:

$ 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] ------------------------------------------------------------------------

Führen Sie die generierte JAR-Datei aus

In sampleartifact / target wurde eine JAR-Datei mit dem Namen "sample-1.0-SNAPSHOT-jar-with-dependencies.jar" generiert. Versuchen Sie also, sie auszuführen.

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

Wenn der Titel von Keta so angezeigt wird, ist er erfolgreich!

mvn install mvn install generiert eine Datei nicht nur unter target, sondern auch im lokalen Repository unter ~ / .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

Löschen Sie das Zielverzeichnis

Sie können es mit dem folgenden Befehl löschen. Es wird verwendet, um das Ziel zu leeren und es dann neu zu erstellen.

$ mvn clean

Referenz

Recommended Posts

[Erstes Java] Machen Sie etwas, das vorerst mit Intellij funktioniert
Einführung in Java zum ersten Mal # 2
Zum ersten Mal Java lernen [Einführung]
Verwenden Sie vorerst eine externe Java-Bibliothek
Führen Sie jetzt Dataflow, Java, Streaming aus
Zum ersten Mal lernen Java # 3 Ausdrücke und Operatoren
Lernnotiz beim ersten Lernen von Java (persönliches Lernnotiz)
Erstmaliges Modellieren von Digimon mit DDD Teil 1
Spring Boot zum ersten Mal
Greifen Sie mit Get on Android auf die Web-API zu und verarbeiten Sie Json (vorerst Java).
Spring AOP zum ersten Mal
Java14 kam heraus, also habe ich vorerst versucht aufzunehmen
Machen Sie so etwas wie Javas Enum mit Typescript
Java12 kam heraus, also habe ich vorerst den Schalterausdruck ausprobiert
Glassfish Tuning List, die ich vorerst behalten möchte
[Socket-Kommunikation (Java)] Eindrücke von der erstmaligen Implementierung der Socket-Kommunikation in der Praxis
Erste Programmierung in meinem Leben Java 1st Hello World
[Java] Stellen Sie die Zeit im Browser mit jsoup ein
Wände von der ersten Rspec getroffen
Eindrücke und Zweifel an der erstmaligen Verwendung von Java in Android Studio
Android Studio-Entwicklung zum ersten Mal (für Anfänger)
Ich habe zum ersten Mal versucht, Docker zu berühren
Ich möchte, dass Sie Scala vorerst als besseres Java verwenden
Installieren Sie vorerst Amazon Corretto (Vorschau)
Ich habe ein Programm erstellt, das aus dem mit Java überladenen Prozess nach der Zielklasse sucht
[Deep Learning von Grund auf neu] in Java 1. Zur Zeit Differenzierung und teilweise Differenzierung
Vorläufiges Memo beim Erstellen der CentOS 6-Serie mit VirtualBox
[Android Studio / Java] Was Sie nicht verstehen, wenn Sie es zum ersten Mal berühren
[Java-Grundlagen] Lassen Sie uns ein Dreieck mit einer for-Anweisung erstellen
Versuchen Sie vorerst, Spring Cloud Config auszuführen
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
Befehl, um Docker vorerst zu verwenden
Wie man Kotlin zum ersten Mal studiert ~ Teil 2 ~
Wie man Kotlin zum ersten Mal studiert ~ Teil 1 ~
Zusammenfassung der Punkte, die Java-Programmierer beim ersten Lesen der Kotlin-Quelle als rutschig empfinden
Versuchen Sie für die Aggregationsverarbeitung, die mit der vordefinierten Hive-Funktion nicht durchgeführt werden kann, zunächst die Reflect-Funktion.
Gibt an, ob die Serverseite zum Zeitpunkt der Systemwiederherstellung mit Kotlin oder Java erstellt werden soll
[Rails] Ich habe zum ersten Mal versucht, die button_to-Methode zu verwenden
Planen Sie die Optimierung mit AI, die den Grund für das Ergebnis versteht
Mit der Software, die ich schon lange mache ...
[DL4J] Erstes Java Deep Learning (Handschriftliche Zeichenerkennung über ein vollständig verbundenes neuronales Netzwerk)
Wie gehe ich mit dem Typ um, den ich 2 Jahre lang über das Schreiben eines Java-Programms nachgedacht habe?
Denken Sie daran, wenn Rails (Turbolinks) die Seite nicht zum ersten Mal lädt
Generieren Sie die Datei colours.xml für dunkle Themen mit der Technologie, die Force Dark unterstützt
[WSL] Lösung für das Phänomen, dass 404 angezeigt wird, wenn versucht wird, Java mit apt einzufügen (persönliches Memo)
Lassen Sie uns den Berechtigungscode-Grant-Flow mit Spring Security OAuth-Teil 2: Erstellen einer App vorerst erleben