中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

maven的基本使用是怎樣的

發布時間:2021-11-10 18:17:51 來源:億速云 閱讀:153 作者:柒染 欄目:大數據

maven的基本使用是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

什么是maven?

Apache Maven 是一套軟件工程管理和整合工具。 它是基于工程對象模型( Project Object Model ,POM)的概念,通過一個中央信息管理模塊,Maven 能夠管理項目的構建、報告和文檔。說白了maven項目就是通過一個pom.xml實現對工程的管理,項目的測試、打包、部署等一應俱全的功能,用好了maven插件,簡直事半功倍!Maven 是基于 Java 的工具,所以要做的第一件事情就是安裝 JDK。

maven 特點:

Maven 能夠幫助開發者完成以下工作:

  • 構建

  • 文檔生成

  • 報告

  • 依賴

  • SCMs

  • 發布

  • 分發

  • 郵件列表

總的來說,Maven 簡化了工程的構建過程,并對其標準化。它無縫銜接了編譯、發布、文檔生成、團隊合作和其他任務。Maven 提高了重用性,負責了大部分構建相關的任務。

開發者不需要再關心每一個配置細節。Maven 為工程提供了合理的默認行為。當創建 Maven 工程時,Maven 會創建默認的工程結構。開發者只需要合理的放置文件,而在 pom.xml 中不再需要定義任何配置。

Maven 使用約定而不是配置,意味著開發者不需要再自己創建構建過程。maven內置變量如下:

${basedir}表示項目根目錄,即包含pom.xml文件的目錄;

${version}表示項目版本;

${project.basedir}同${basedir};

${project.baseUri}表示項目文件地址;

${maven.build.timestamp}表示項目構件開始時間;

${maven.build.timestamp.format}表示屬性${maven.build.timestamp}的展示格式,默認值為yyyyMMdd-HHmm,可自定義其格式,其類型可參考java.text.SimpleDateFormat。
 ${project.build.directory}表示主源碼路徑;

${project.build.sourceEncoding}表示主源碼的編碼格式;

${project.build.sourceDirectory}表示主源碼路徑;

${project.build.finalName}表示輸出文件名稱;

 ${project.version}表示項目版本,與${version}相同;
 ${project.xxx} 當前pom文件的任意節點的內容
 ${env.xxx} 獲取系統環境變量。
 ${settings.xxx} 指代了settings.xml中對應元素的值。

一個工程僅有一個pom文件,那么如何唯一標記當前 工程呢?

  • 所有的 POM 文件需要 project 元素和三個必須的字段:groupId, artifactId,version

  • 在倉庫中的工程標識為 groupId:artifactId:version

  • POM.xml 的根元素是 project,它有三個主要的子節點:

<groupId>com.companyname.project-group</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>
groupId:公司域名倒寫

artifactId: 當前項目名稱

version: 版本號

當執行一個任務或者目標時,Maven 會查找當前目錄下的 POM,從其中讀取所需要的配置信息,然后執行目標。能夠在 POM 中設置的一些配置如下:

  • project dependencies

  • plugins

  • goals

  • build profiles

  • project version

  • developers

  • mailing list

更加詳細的內容可以 到 pom.xml 所在的目錄下執行以下 mvn 命令  mvn help:effective-pom ,查看完整的內容。

maven生命周期

maven的基本使用是怎樣的

maven對構建(build)的過程進行了抽象和定義,這個過程被稱為構建的生命周期(lifecycle)。生命周期(lifecycle)由多個階段(phase)組成,每個階段(phase)會掛接一到多個goal。goal是maven里定義任務的最小單元,goal分為兩類,一類是綁定phase的,就是執行到某個phase,那么這個goal就會觸發,另外一類不綁定,就是單獨任務,這就相當于ant里的target。

以clean生命周期為例,當我們執行 mvn post-clean 命令時,Maven 調用 clean 生命周期,它包含以下階段:

  • pre-clean:執行一些需要在clean之前完成的工作

  • clean:移除所有上一次構建生成的文件

  • post-clean:執行一些需要在clean之后立刻完成的工作

mvn clean 中的 clean 就是上面的 clean,在一個生命周期中,運行某個階段的時候,它之前的所有階段都會被運行,也就是說,如果執行 mvn clean 將運行以下兩個生命周期階段:

pre-clean, clean

如果我們運行 mvn post-clean ,則運行以下三個生命周期階段:

pre-clean, clean, post-clean

Maven 構建配置文件

使用構建配置文件,你可以為不同的環境,比如說生產環境(Production)和開發(Development)環境,定制構建方式。

1. pom文件設置

配置文件在 pom.xml 文件中使用 activeProfiles 或者 profiles 元素指定,并且可以通過各種方式觸發。配置文件在構建時修改 POM,并且用來給參數設定不同的目標環境(比如說,開發(Development)、測試(Testing)和生產環境(Production)中數據庫服務器的地址)。

maven的基本使用是怎樣的

場景:開發環境下和生產環境下的配置文件肯定不一樣,如何通過profile來控制呢?

假設 在src/main/resources文件夾下有三個用于測試文件:

maven的基本使用是怎樣的

那么在pom.xml文件下做如下配置:

   <profile>
          <id>normal</id>
          <build>
              <plugins>
                 <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                    <executions>
                       <execution>
                          <phase>test</phase>
                          <goals>
                             <goal>run</goal>
                          </goals>
                          <configuration>
                          <tasks>
                             <echo>Using env.properties</echo>
                             <copy file="src/main/resources/env.properties" tofile="${project.build.outputDirectory}/env.properties" overwrite="true"/>
                          </tasks>
                          </configuration>
                       </execution>
                    </executions>
                 </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>prod</id>
          <build>
              <plugins>
                 <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                    <executions>
                       <execution>
                          <phase>test</phase>
                          <goals>
                             <goal>run</goal>
                          </goals>
                          <configuration>
                          <tasks>
                             <echo>Using env.prod.properties</echo>
                             <copy file="src/main/resources/env.prod.properties" tofile="${project.build.outputDirectory}/env.properties" overwrite="true"/>
                          </tasks>
                          </configuration>
                       </execution>
                    </executions>
                 </plugin>
              </plugins>
          </build>
      </profile>
   </profiles>

使用 pom.xml 來定義不同的 profile,并使用 maven 命令可以激活不同的 profile。

mvn test -Pnormal

將會激活id為normal的環境

2. 通過Maven設置激活配置文件

打開 %USER_HOME%/.m2 目錄下的 settings.xml 文件,其中 %USER_HOME% 代表用戶主目錄。如果 setting.xml 文件不存在就直接拷貝 %M2_HOME%/conf/settings.xml 到 .m2 目錄,其中 %M2_HOME% 代表 Maven 的安裝目錄。

配置 setting.xml 文件,增加 <activeProfiles>屬性:

<settings 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/settings-1.0.0.xsd">
   ...
   <activeProfiles>
      <activeProfile>test</activeProfile>
   </activeProfiles>
</settings>

執行命令:

mvn test

此時不需要使用 -Ptest 來輸入參數了,上面的 setting.xml 文件的 <activeprofile> 已經指定了 test 參數代替了。

除此之外,還可以通過環境變量激活。

通常,可以在setting文件里設置如下的倉庫源,可以快速下載相應的jar包

<mirror>      <id>alimaven</id>      <name>aliyun maven</name>      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>      <mirrorOf>central</mirrorOf>        </mirror>

看完上述內容,你們掌握maven的基本使用是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建德市| 星座| 绥中县| 扎囊县| 图木舒克市| 云龙县| 青神县| 津市市| 化州市| 泗水县| 保德县| 新源县| 灌阳县| 日照市| 治多县| 马鞍山市| 于田县| 怀宁县| 黄大仙区| 浏阳市| 佛坪县| 阳高县| 安仁县| 德保县| 堆龙德庆县| 满城县| 松滋市| 伊川县| 龙南县| 汨罗市| 安福县| 桐乡市| 辉南县| 博乐市| 阜康市| 荣昌县| 岱山县| 乌恰县| 永福县| 长海县| 武邑县|