您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何用maven將dubbo工程打成jar包來運行,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
maven打包方式
使用maven打包插件maven-jar-plugin
在pom.xml
文件最后新增以下代碼。maven-dependency-plugin
是指將依賴的jar包復制到指定目錄maven-resources-plugin
將依賴的resources復制到指定目錄
<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> <!-- 啟動函數 --> <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>
打包之后的目錄結構
包含了class文件,以及需要的配置文件信息(不包含excludes的配置文件)
在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 執行命令時,會用到目錄META-INFMANIFEST.MF中Main-Class的參數,這個是在打包的時候指定函數的入口。
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
上用":"隔開。
表達式支持通配符
java -cp .:/Users/username/*.jar packname.mainclassname
如果需要將依賴的jar包都達到一個jar包中運行,可以使用maven-shade-plugin
這個插件。
這個插件的功能主要是:將依賴的jar包打包到當前jar包,并且在打包的時候把類重命名,可以解決jar包的多版本沖突,具體可以查詢官方插件文檔。
感謝你能夠認真閱讀完這篇文章,希望小編分享如何用maven將dubbo工程打成jar包來運行內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。