summaryrefslogtreecommitdiff
path: root/static/passthrough/20250609-maven-primer.txt
diff options
context:
space:
mode:
authorVincent Douillet <vincent@vdouillet.fr>2025-06-09 17:45:10 +0200
committerVincent Douillet <vincent@vdouillet.fr>2025-06-09 17:45:10 +0200
commit9334ac94afad33821fc859c98c471ee550a13fd0 (patch)
tree6d2bfc9e0a7637ffc30b553ea71fb0cd4f52fd95 /static/passthrough/20250609-maven-primer.txt
parent561c935d3b03c1365e8b0bf3f79ab15a33e229b3 (diff)
article: suckless presentationsHEADmaster
Diffstat (limited to 'static/passthrough/20250609-maven-primer.txt')
-rw-r--r--static/passthrough/20250609-maven-primer.txt82
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.