欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Maven打包和運行

 更新時間:2020年07月17日 10:56:42   作者:tjsahwj  
這篇文章主要介紹了Maven打包和運行的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

將項目進行編譯、測試之后,接下來就是打包(package),我們的pom.xml中沒有指定打包類型,那么使用默認打包類型jar,簡單的執(zhí)行命令mvn clean package進行打包

從輸出內(nèi)容可以看出,Maven在打包之前進行了編譯、測試等操作。

jar任務負責打包,實際上就是jar插件的jar目標將項目主代碼打包成一個名為hello-world-1.0-SNAPSHOT.jar的文件。該文件也位于target/輸出目錄中

它是根據(jù)artifact-version.jar規(guī)則進行命名的。

至此,我們得到了項目的輸出,如果有需要的話,就可以復制這個jar文件到其他項目的Classpath中,從而使用HelloWorld類。

但是,如何讓其他的Maven項目直接飲用這個jar呢,還需要一個安裝步驟:mvn clean install

在打包之后,又執(zhí)行了install。從輸出中可以看到該任務將項目輸出的jar安裝到了Maven本地倉庫中,可以打開相應的文件夾看到HelloWorld項目的pom和jar。

現(xiàn)在我們已經(jīng)介紹了Maven最主要的命令:mvn clean compile、mvn clean test、mvn clean package、mvn clean install。

執(zhí)行test之前是會先執(zhí)行compile的,執(zhí)行package之前是會先執(zhí)行test的,類似的install之前會先執(zhí)行package,可以在任何一個Maven項目中執(zhí)行這些命令。

默認打包生成的jar是不能夠直接運行的,因為帶有main方法的類信息不會添加到manifest中(打開jar文件中的META-INF/MANIFEST.MF文件,將無法看到Main-Class一行)

為了生成可執(zhí)行的jar文件,需要借助maven-shade-plugin

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>1.2.1</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>

這里配置了mainClass為com.juvenxu.mvnbook.helloworld.HelloWorld,項目打包時會將該信息放到MANIFEST中,再次執(zhí)行mvn clean install,構建完之后打開target/目錄,可以看到hello-world-0.0.1-SNAPSHOT.jar和original-hello-world-0.0.1-SNAPSHOT.jar,前者是帶有Main-Class信息的可運行jar,后者是原始的jar

打開hello-world-0.0.1-SNAPSHOT.jar的META-INF/MANIFEST.MF,可以看到包含這樣一樣信息:

Main-Class: com.juvenxu.mvnbook.helloworld.HelloWorld

現(xiàn)在在項目根目錄中執(zhí)行該jar文件

# java -jar target\hello-world-0.0.1-SNAPSHOT.jar

控制臺輸出了Hello Maven

到此這篇關于Maven打包和運行的文章就介紹到這了,更多相關Maven打包和運行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于Java實現(xiàn)簡易的七星彩號碼生成器

    基于Java實現(xiàn)簡易的七星彩號碼生成器

    七星彩是中國體育彩票的一種玩法,由中國國家體育總局體育彩票管理中心統(tǒng)一發(fā)行。本文為大家準備了一個七星彩號碼生成器Java工具類,感興趣的可以了解一下
    2022-08-08
  • Java基礎之文件概述

    Java基礎之文件概述

    這篇文章主要介紹了Java基礎之文件概述,文中有非常詳細的代碼示例,對正在學習java基礎的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-05-05
  • springcloud+nacos實現(xiàn)灰度發(fā)布示例詳解

    springcloud+nacos實現(xiàn)灰度發(fā)布示例詳解

    這篇文章主要介紹了springcloud+nacos實現(xiàn)灰度發(fā)布,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 一文秒懂idea的git插件跟翻譯插件

    一文秒懂idea的git插件跟翻譯插件

    idea之類的開發(fā)軟件真的超級多的插件,今天給大家分享idea的git插件跟翻譯插件,感興趣的朋友跟隨小編一起看看吧
    2021-04-04
  • java實現(xiàn)小i機器人api接口調(diào)用示例

    java實現(xiàn)小i機器人api接口調(diào)用示例

    這篇文章主要介紹了java實現(xiàn)小i機器人api接口調(diào)用示例,需要的朋友可以參考下
    2014-04-04
  • SpringBoot項目打包war包時無法運行問題的解決方式

    SpringBoot項目打包war包時無法運行問題的解決方式

    在開發(fā)工程中,使用啟動類啟動能夠正常啟動并測試,下面這篇文章主要給大家介紹了關于SpringBoot項目打包war包時無法運行問題的解決方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • java向下轉型基礎知識點及實例

    java向下轉型基礎知識點及實例

    在本篇文章里小編給大家整理的是一篇關于java向下轉型基礎知識點及實例內(nèi)容,有興趣的朋友們可以學習下。
    2021-05-05
  • java中讀寫Properties屬性文件公用方法詳解

    java中讀寫Properties屬性文件公用方法詳解

    在項目開發(fā)中我們會將很多環(huán)境特定的變量定義到一個配置文件中,比如properties文件,把數(shù)據(jù)庫的用戶名和密碼存放到此屬性文件中。下面這篇文章就主要介紹了java中讀寫Properties屬性文件公用方法,需要的朋友可以參考借鑒。
    2017-01-01
  • SpringBoot+JUnit5+MockMvc+Mockito單元測試的實現(xiàn)

    SpringBoot+JUnit5+MockMvc+Mockito單元測試的實現(xiàn)

    今天聊聊如何在 SpringBoot 中集成 Junit5、MockMvc、Mocktio。Junit5 是在 Java 棧中應用最廣的測試框架,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 解決IDEA占用C盤空間過大的問題

    解決IDEA占用C盤空間過大的問題

    這篇文章主要介紹了解決IDEA占用C盤空間過大的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論