[JAVA] Essayez d'utiliser Maven

Aperçu

Qu'est-ce que Maven? J'ai donc décidé d'enquêter et de l'utiliser. Notes personnelles.

Qu'est-ce que Maven?

J'ai lu ce qui suit. http://d.hatena.ne.jp/keyword/Maven https://kengotoda.gitbooks.io/what-is-maven/content/preface.html

Outils de création Vous pouvez facilement créer et déployer des projets, générer des rapports de test, etc. sans avoir à écrire vous-même build.xml comme Apache Ant.

Je n'ai jamais utilisé Java, j'ai donc décidé d'utiliser Maven pour l'exécuter comme une étude de Java.

Conditions préalables

Procédure d'installation

$ wget http://ftp.jaist.ac.jp/pub/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

$ tar xvzf apache-maven-3.3.9-bin.tar.gz

$ mv apache-maven-3.3.9 /usr/local/

$ ln -s /usr/local/apache-maven-3.3.9/bin/mvn /usr/local/bin/mvn

$ mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /usr/local/apache-maven-3.3.9
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "4.4.27-boot2docker", arch: "amd64", family: "unix"

Création de projet

mvn archetype:generate -DinteractiveMode=false \
                         -DarchetypeGroupId=pl.org.miki \
                         -DarchetypeArtifactId=java8-quickstart-archetype \
                         -DgroupId=hello.world \
                         -DartifactId=helloworld \
                         -Dversion=1.0-SNAPSHOT \
                         -Dpackage=hello.world \
                         -Dpackaging=jar
$ tree helloworld/
helloworld/
|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- hello
    |           `-- world
    `-- test
        `-- java
            `-- hello
                `-- world

9 directories, 1 file

Généré pom.xml

pom.xml est un fichier important contenant des informations sur le projet. Par exemple, il contient des informations sur la création d'un projet, des informations sur les bibliothèques dépendantes, les paramètres de plug-in, etc.

référence http://www.techscore.com/tech/Java/ApacheJakarta/Maven/2-2/#maven-2-4

<?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>hello.world</groupId>
	<artifactId>helloworld</artifactId>
	<version>1.0-SNAPSHOT</version>
	<packaging>jar</packaging>


	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

Placer la source

$ pwd
/root/helloworld/src/main/java/hello/world

$ cat HelloWorld.java
package hello.world;

public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello, world.");
    }
}

Construction du code source

Le répertoire cible est créé lorsque vous créez

$ cd helloworld
$ mvn compile
$ tree helloworld/
helloworld/
|-- pom.xml
|-- src
|   |-- main
|   |   `-- java
|   |       `-- hello
|   |           `-- world
|   |               `-- HelloWorld.java
|   `-- test
|       `-- java
|           `-- hello
|               `-- world
`-- target
    |-- classes
    |   `-- hello
    |       `-- world
    |           `-- HelloWorld.class
    |-- generated-sources
    |   `-- annotations
    `-- maven-status
        `-- maven-compiler-plugin
            `-- compile
                `-- default-compile
                    |-- createdFiles.lst
                    `-- inputFiles.lst

19 directories, 5 files

Exécution source

$ java hello.world.HelloWorld

Ajusté 1

Si vous écrivez le package ~~~ dans le source Java, Il devait être mis en correspondance avec le package spécifié au moment de l'exécution lorsque le projet de Maven a été créé.

Équipé 2

Cela n'a pas fonctionné lorsque j'ai exécuté la source générée. En conséquence, l'emplacement d'exécution de java n'était pas bon.

Dans ce cas, c'était hello.world en tant que package. Le lieu d'exécution était le suivant.

$ pwd
/root/helloworld/target/classes

$ java hello.world.HelloWorld
Hello, world.

Ajusté 3

Bien que ce ne soit pas la source donnée dans cet exemple En utilisant try-with-resources dans la source à construire, Il y avait un problème que je ne pouvais pas bien construire. try-with-resources a été implémenté à partir de Java 7, mais maintenant c'est Java 8 Je me demandais pourquoi cela ne fonctionnait pas. .. ..

Donc, comme solution, je devais vous dire explicitement de construire avec Java 8 lors de la création du projet.

J'ai évoqué ce qui suit. http://qiita.com/mkamotsu/items/98c6d721a87a74f2b36f http://d.hatena.ne.jp/Kazuhira/20151010/1444479555

Recommended Posts

Essayez d'utiliser Maven
Essayez d'utiliser libGDX
Essayez d'utiliser powermock-mockito2-2.0.2
Essayez d'utiliser GraalVM
Essayez d'utiliser jmockit 1.48
Essayez d'utiliser SwiftLint
Essayez d'utiliser Log4j 2.0
Essayez d'utiliser le Framework Axon
Essayez d'utiliser l'API REST de JobScheduler
Essayez d'utiliser la méthode java.lang.Math
Essayez d'utiliser la WhiteBox de PowerMock
Essayez d'utiliser Talend Part 2
Essayez d'utiliser Talend Part 1
Essayez d'utiliser la liste F #
Essayez d'utiliser la méthode each_with_index
Essayez d'utiliser Spring JDBC
Maven
Essayez d'utiliser RocksDB avec Java
Essayez d'utiliser GloVe avec Deeplearning4j
Essayez de gratter en utilisant Java [Note]
Essayez d'utiliser Cocoa de Ruby
Essayez gRPC avec Java, Maven
Essayez d'utiliser IntelliJ IDEA car vous ne devez le faire qu'une seule fois
Essayez d'utiliser Spring Boot Security
[Rails] Essayez d'utiliser le middleware de Faraday
[Traitement] Essayez d'utiliser GT Force.
[Programmation complète] §2 Essayez d'utiliser Ruby
Essayez Redmine sur le docker Mac
Essayez d'utiliser Redis avec Java (jar)
[Java] Essayez de mettre en œuvre à l'aide de génériques
Essayez d'utiliser le système de messagerie Pulsar
Essayez d'utiliser le traçage de méthode IBM Java
Essayez d'utiliser le SDK Java d'Hyperledger Iroha
[Java] Où avez-vous essayé d'utiliser java
Vérifiez le fonctionnement à l'aide de la jetée avec Maven.
Essayez HiveRunner
Essayez d'utiliser le service sur Android Oreo
Essayez d'utiliser l'API Stream en Java
Essayez Mockito
Étude de Java Essayez d'utiliser un scanner ou une carte
Essayez le sélénium
Essayez d'utiliser l'API au format JSON en Java
Essayez DbUnit
Essayez d'utiliser Spring Boot avec VS Code
Créez un projet Maven à la hâte à l'aide du conteneur Docker de Maven
Apprentissage Maven
Essayez d'utiliser MT Loader de Reladomo (chargeur de matrices multi-threads)
Essayez d'utiliser l'API REST de JobScheduler - implémentation Java RestClient--
Essayez d'utiliser l'API Emotion d'Android
Essayez d'utiliser la télécommande Wii en Java
Essayez Lombok
[Maven] À propos de Maven