溫馨提示×

溫馨提示×

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

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

如何使用maven將dubbo工程打成jar包運行

發(fā)布時間:2021-08-13 10:32:58 來源:億速云 閱讀:100 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“如何使用maven將dubbo工程打成jar包運行”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何使用maven將dubbo工程打成jar包運行”這篇文章吧。

maven打包方式

使用maven打包插件maven-jar-plugin

pom.xml文件最后新增以下代碼。

maven-dependency-plugin是指將依賴的jar包復(fù)制到指定目錄

maven-resources-plugin將依賴的resources復(fù)制到指定目錄

 <build>
    <plugins>
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-jar-plugin</artifactId> 
        <version>2.6</version> 
        <configuration> 
          <archive> 
            <manifest> 
            <!--  是否依賴外部jar包 -->
              <addClasspath>true</addClasspath> 
              <!-- 依賴外部jar包路徑 -->
              <classpathPrefix>lib/</classpathPrefix> 
 <!-- 啟動函數(shù) -->              <mainClass>com.alibaba.dubbo.container.Main</mainClass> 
            </manifest> 
          </archive> 
           <!-- 打包之后輸出目錄 --> 
          <outputDirectory>${project.build.directory}/maven-archiver</outputDirectory>
<!--  剔除已打包的配置文件 -->
           <excludes>
             <exclude>*.*</exclude>
             <exclude>config/*</exclude>
             <exclude>config/tencent/*</exclude>
             <exclude>META-INF/spring/*</exclude>
           </excludes>
        </configuration> 
      </plugin> 

<!--       拷貝依賴的jar包到lib目錄 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.8</version>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>
                ${project.build.directory}/maven-archiver/lib
              </outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
<!--  拷貝依賴的資源文件包到resources目錄 -->
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>package</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/maven-archiver/resources</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/src/main/resources</directory>
                  <filtering>true</filtering>

                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

運行jar包方式

打包之后的目錄結(jié)構(gòu)

包含了class文件,以及需要的配置文件信息(不包含excludes的配置文件)

如何使用maven將dubbo工程打成jar包運行

MANIFEST.MF中包含了運行需要的信息

Class-Path: lib/commons-beanutils-1.8.3.jar lib/commons-betwixt-0.8.jar
...
Main-Class: com.alibaba.dubbo.container.Main

java -jar

啟動命令

java -jar 執(zhí)行命令時,會用到目錄META-INFMANIFEST.MF中Main-Class的參數(shù),這個是在打包的時候指定函數(shù)的入口。

java -jar x-0.0.1-SNAPSHOT.jar

java -cp

啟動命令

java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname

因為我工程中需要引用外部的resources文件所以我通常用這種方式啟動

配置文件地址是絕對路徑

java -cp /Users/username/resources:dubbo-service-1.0.jar com.alibaba.dubbo.container.Main

-cp-classpath是相同的效果

java -cp 是指定運行所依賴其他類的路徑,通常是類庫、jar 包之類,多個依賴在Window 上用分號";"隔開,linux上用":"隔開。

表達(dá)式支持通配符

java -cp .:/Users/username/*.jar packname.mainclassname

打成一個jar包

如果需要將依賴的jar包都達(dá)到一個jar包中運行,可以使用maven-shade-plugin這個插件。

這個插件的功能主要是:將依賴的jar包打包到當(dāng)前jar包,并且在打包的時候把類重命名,可以解決jar包的多版本沖突,具體可以查詢官方插件文檔。

以上是“如何使用maven將dubbo工程打成jar包運行”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI