From 9334ac94afad33821fc859c98c471ee550a13fd0 Mon Sep 17 00:00:00 2001 From: Vincent Douillet Date: Mon, 9 Jun 2025 17:45:10 +0200 Subject: article: suckless presentations --- static/passthrough/20250609-maven-primer.txt | 82 ++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 static/passthrough/20250609-maven-primer.txt (limited to 'static/passthrough/20250609-maven-primer.txt') diff --git a/static/passthrough/20250609-maven-primer.txt b/static/passthrough/20250609-maven-primer.txt new file mode 100644 index 0000000..9d438a0 --- /dev/null +++ b/static/passthrough/20250609-maven-primer.txt @@ -0,0 +1,82 @@ +Maven +A beginner's guide + +https://maven.apache.org +"Apache Maven is a software project management +and comprehension tool" + +Based on a "project object model (POM)" +that allows Maven to build the project as configured + +Through its configuration, you can tell Maven: +- What your project dependencies are +- How to compile your project +- How to package your project +- How to run your unit tests +- How to... whatever, really + +Maven is architected around plugins. +Its functionnalities can be extended by writing new plugins. +Though, most likely a plugin already exists for your needs. + +Maven is launched through the command line +with its command and a target "phase". +$ mvn deploy + +When Maven runs, it follows a "lifecycle". +A lifecycle is made of "phases". +Maven will run all the phases up to the +one you specified on the command line. + +Default lifecycle +- validate +- compile +- test +- package +- verify +- install +- deploy + +Each build phase is made up of plugin goals. +You configure which plugins run at each phase +through Maven's config file "pom.xml". + +The POM file should be in the directory from +which you invoke Maven. + +The POM file specifies: +- The project's dependencies +- The plugins to use for the build + +The dependencies and the plugins are called +artifacts. +They're identified by a group, a name, and +a version. + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.0 + + +Maven downloads artifacts from a "repository". +There are 2 types of repositories. + +Local repository +A directory on your computer. +Maven caches remote downloads +in the local repository + +Remote repository +Any other repository is a remote repository. +It can be a directory, an HTTP server, ... + +By default, Maven uses the following remote repository +https://repo.maven.apache.org/maven2/ + +Through the POM file, you can configure one +or several repositories to use. + +You can instruct Maven to "deploy" your locally built +artifact to a repository, so that other users can +instruct Maven to depend on it for their build. -- cgit v1.2.3