最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Maven打包和運(yùn)行

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

將項(xiàng)目進(jìn)行編譯、測(cè)試之后,接下來(lái)就是打包(package),我們的pom.xml中沒(méi)有指定打包類(lèi)型,那么使用默認(rèn)打包類(lèi)型jar,簡(jiǎn)單的執(zhí)行命令mvn clean package進(jìn)行打包

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

jar任務(wù)負(fù)責(zé)打包,實(shí)際上就是jar插件的jar目標(biāo)將項(xiàng)目主代碼打包成一個(gè)名為hello-world-1.0-SNAPSHOT.jar的文件。該文件也位于target/輸出目錄中

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

至此,我們得到了項(xiàng)目的輸出,如果有需要的話(huà),就可以復(fù)制這個(gè)jar文件到其他項(xiàng)目的Classpath中,從而使用HelloWorld類(lèi)。

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

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

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

執(zhí)行test之前是會(huì)先執(zhí)行compile的,執(zhí)行package之前是會(huì)先執(zhí)行test的,類(lèi)似的install之前會(huì)先執(zhí)行package,可以在任何一個(gè)Maven項(xiàng)目中執(zhí)行這些命令。

默認(rèn)打包生成的jar是不能夠直接運(yùn)行的,因?yàn)閹в衜ain方法的類(lèi)信息不會(huì)添加到manifest中(打開(kāi)jar文件中的META-INF/MANIFEST.MF文件,將無(wú)法看到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,項(xiàng)目打包時(shí)會(huì)將該信息放到MANIFEST中,再次執(zhí)行mvn clean install,構(gòu)建完之后打開(kāi)target/目錄,可以看到hello-world-0.0.1-SNAPSHOT.jar和original-hello-world-0.0.1-SNAPSHOT.jar,前者是帶有Main-Class信息的可運(yùn)行jar,后者是原始的jar

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

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

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

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

控制臺(tái)輸出了Hello Maven

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

相關(guān)文章

最新評(píng)論

内江市| 内丘县| 自贡市| 昌宁县| 甘谷县| 容城县| 邮箱| 巴彦淖尔市| 汾西县| 科技| 敦化市| 微山县| 锦州市| 麟游县| 郯城县| 枝江市| 淮滨县| 团风县| 阳信县| 景德镇市| 浠水县| 威宁| 志丹县| 三穗县| 蕉岭县| 广灵县| 子洲县| 武义县| 邛崃市| 二手房| 乐清市| 仁化县| 仙居县| 惠水县| 沁水县| 广饶县| 邢台市| 余江县| 台中市| 恩施市| 盐源县|