diff options
Diffstat (limited to 'static/passthrough/20250609-maven-primer.txt')
-rw-r--r-- | static/passthrough/20250609-maven-primer.txt | 82 |
1 files changed, 82 insertions, 0 deletions
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. + +<plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.14.0</version> +</plugin> + +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. |