<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tool on 🍃 Breeze Bless</title><link>https://imzhizi.github.io/tags/tool/</link><description>Recent content in Tool on 🍃 Breeze Bless</description><generator>Hugo</generator><language>en-us</language><copyright>Copyright © 2018-2026, imzhizi</copyright><lastBuildDate>Sat, 07 Mar 2020 01:10:48 +0800</lastBuildDate><atom:link href="https://imzhizi.github.io/tags/tool/index.xml" rel="self" type="application/rss+xml"/><item><title>个人对于 Maven 的理解</title><link>https://imzhizi.github.io/%E4%B8%AA%E4%BA%BA%E5%AF%B9%E4%BA%8E-maven-%E7%9A%84%E7%90%86%E8%A7%A3/</link><pubDate>Sat, 07 Mar 2020 01:10:48 +0800</pubDate><guid>https://imzhizi.github.io/%E4%B8%AA%E4%BA%BA%E5%AF%B9%E4%BA%8E-maven-%E7%9A%84%E7%90%86%E8%A7%A3/</guid><description>&lt;p>Maven 一直都在使用, 但如果说是不是真的懂 Maven, 很难谈得上. 或许什么时候系统地学习一下, 但在那之前, 打算先记下自己目前对于 Maven 的理解, 之后再进行对比, 看有哪些疏漏和错误.&lt;/p>
&lt;h3 id="maven-基础">Maven 基础&lt;/h3>
&lt;p>最直观的, Maven 使用 pom.xml 文件来管理项目中所使用的依赖, 这跟 Python 的 requirement.txt、JS 的 &lt;code>package.json&lt;/code> 或者是 Ruby 的 &lt;code>Gemfile&lt;/code> 都类似.&lt;/p>
&lt;p>不过, 其他语言的依赖文件规定的往往是某个包的最低版本, 在实际安装的时候, 很可能会安装最新版, 这个时候实际版本会形成另外一个 lock 文件, 像 &lt;code>package.json.lock&lt;/code>. 但是 Maven 不会, 因为在 Maven 的一个依赖节点中, 会要求声明具体的版本.&lt;/p>
&lt;p>其次, 因为和构建相关, 所以 pom.xml 中需要声明项目所属的组织、项目的名称、版本, 同时还要在 &lt;code>properties&lt;/code> 节点中声明使用的 Java 版本、编码等信息, &lt;code>build&lt;/code> 也是经常见到的一个节点, 但我不是很理解它的作用.&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;lt;!--项目信息--&amp;gt; 
&amp;lt;groupId\&amp;gt;域名/项目名&amp;lt;/groupId\&amp;gt; 
&amp;lt;artifactId\&amp;gt;项目名/组件&amp;lt;/artifactId\&amp;gt; 
&amp;lt;version\&amp;gt;版本&amp;lt;/version\&amp;gt; 
​ 
&amp;lt;properties\&amp;gt; 
 &amp;lt;!-- 可以声明编码 --&amp;gt; 
 &amp;lt;!-- 声明 jdk 版本--&amp;gt; 
 &amp;lt;maven.compiler.source\&amp;gt;1.8&amp;lt;/maven.compiler.source\&amp;gt; 
 &amp;lt;maven.compiler.target\&amp;gt;1.8&amp;lt;/maven.compiler.target\&amp;gt; 
 &amp;lt;!-- 可以自定义一些版本值 --&amp;gt; 
&amp;lt;/properties\&amp;gt; 
​ 
&amp;lt;!-- 一些构建相关的信息 --&amp;gt; 
&amp;lt;build\&amp;gt; 
 …… 
&amp;lt;/build\&amp;gt; 
​ 
&amp;lt;!-- 最重要的部分, 列出所依赖的包 --&amp;gt; 
&amp;lt;dependencies\&amp;gt; 
 &amp;lt;dependency\&amp;gt; 
 &amp;lt;groupId\&amp;gt;域名/项目名&amp;lt;/groupId\&amp;gt; 
 &amp;lt;artifactId\&amp;gt;项目名/组件&amp;lt;/artifactId\&amp;gt; 
 &amp;lt;version\&amp;gt;版本&amp;lt;/version\&amp;gt; 
 &amp;lt;/dependency\&amp;gt; 
 …… 
&amp;lt;/dependencies\&amp;gt;
&lt;/code>&lt;/pre>&lt;p>同时, 和其他包管理工具相比, Maven 不像 pip、npm、gem 一样可以使用 &lt;code>install xxxx&lt;/code> 命令安装依赖, 而是需要自己向 &lt;code>pom.xml&lt;/code> 中添加 &lt;code>&amp;lt;dependency&amp;gt;……&amp;lt;/dependency&amp;gt;&lt;/code> 节点来添加依赖, 然后执行 &lt;code>mvn install&lt;/code> 命令才能安装.&lt;/p></description></item></channel></rss>