日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用Maven构建Dubbo服务的可运行jar包

發(fā)布時(shí)間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Maven构建Dubbo服务的可运行jar包 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文為《基于Dubbo的分布式系統(tǒng)架構(gòu)視頻教程》的課程系列文檔,更多課程信息,請(qǐng)關(guān)注:http://www.roncoo.com



Dubbo視頻教程--基礎(chǔ)篇--第07節(jié)--使用Maven構(gòu)建Dubbo服務(wù)的可運(yùn)行jar包


一、Dubbo服務(wù)的運(yùn)行方式:

1、使用Servlet容器運(yùn)行(Tomcat、Jetty等)----不可取

? 缺點(diǎn):增加復(fù)雜性(端口、管理)

? ? ? 浪費(fèi)資源(內(nèi)存)


2、自建Main方法類(lèi)來(lái)運(yùn)行(Spring容器) ? ?----不建議(本地調(diào)試可用)

?缺點(diǎn): Dobbo本身提供的高級(jí)特性沒(méi)用上

? ? ? 自已編寫(xiě)啟動(dòng)類(lèi)可能會(huì)有缺陷


3、使用Dubbo框架提供的Main方法類(lèi)來(lái)運(yùn)行(Spring容器)----建議使用

優(yōu)點(diǎn):框架本身提供(com.alibaba.dubbo.container.Main)

? ? 可實(shí)現(xiàn)優(yōu)雅關(guān)機(jī)(ShutdownHook) ??


二、打包用的Maven pom.xml

<project 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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>


<parent>

<groupId>wusc.edu.common</groupId>

<artifactId>edu-common-parent</artifactId>

<version>1.0-SNAPSHOT</version>

<relativePath>../edu-common-parent</relativePath>

</parent>


<groupId>wusc.edu.service</groupId>

<artifactId>edu-service-user</artifactId>

<version>${edu-service-user.version}</version>

<packaging>jar</packaging>


<name>edu-service-user</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<log4j.leve>debug</log4j.leve>

<log4j.ale>debug</log4j.ale>

</properties>


<build>

<finalName>edu-service-user</finalName>


<resources>

<resource>

<targetPath>${project.build.directory}/classes</targetPath>

<directory>src/main/resources</directory>

<filtering>true</filtering>

<includes>

<include>**/*.xml</include>

<include>**/*.properties</include>

</includes>

</resource>

<!-- 結(jié)合com.alibaba.dubbo.container.Main -->

<resource>

<targetPath>${project.build.directory}/classes/META-INF/spring</targetPath>

<directory>src/main/resources/spring</directory>

<filtering>true</filtering>

<includes>

<include>spring-context.xml</include>

</includes>

</resource>

</resources>

<pluginManagement>

<plugins>

<!-- 解決Maven插件在Eclipse內(nèi)執(zhí)行了一系列的生命周期引起沖突 -->

<plugin>

<groupId>org.eclipse.m2e</groupId>

<artifactId>lifecycle-mapping</artifactId>

<version>1.0.0</version>

<configuration>

<lifecycleMappingMetadata>

<pluginExecutions>

<pluginExecution>

<pluginExecutionFilter>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-dependency-plugin</artifactId>

<versionRange>[2.0,)</versionRange>

<goals>

<goal>copy-dependencies</goal>

</goals>

</pluginExecutionFilter>

<action>

<ignore />

</action>

</pluginExecution>

</pluginExecutions>

</lifecycleMappingMetadata>

</configuration>

</plugin>

</plugins>

</pluginManagement>

<plugins>

<!-- 打包jar文件時(shí),配置manifest文件,加入lib包的jar依賴 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jar-plugin</artifactId>

<configuration>

<classesDirectory>target/classes/</classesDirectory>

<archive>

<manifest>

<mainClass>com.alibaba.dubbo.container.Main</mainClass>

<!-- 打包時(shí) MANIFEST.MF文件不記錄的時(shí)間戳版本 -->

<useUniqueVersions>false</useUniqueVersions>

<addClasspath>true</addClasspath>

<classpathPrefix>lib/</classpathPrefix>

</manifest>

<manifestEntries>

<Class-Path>.</Class-Path>

</manifestEntries>

</archive>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-dependency-plugin</artifactId>

<executions>

<execution>

<id>copy-dependencies</id>

<phase>package</phase>

<goals>

<goal>copy-dependencies</goal>

</goals>

<configuration>

<type>jar</type>

<includeTypes>jar</includeTypes>

<useUniqueVersions>false</useUniqueVersions>

<outputDirectory>

${project.build.directory}/lib

</outputDirectory>

</configuration>

</execution>

</executions>

</plugin>

</plugins>


</build>


<dependencies>

<dependency>

<groupId>wusc.edu.common</groupId>

<artifactId>edu-common</artifactId>

<version>${edu-common.version}</version>

</dependency>

<dependency>

<groupId>wusc.edu.common</groupId>

<artifactId>edu-common-config</artifactId>

<version>${edu-common-config.version}</version>

</dependency>

<dependency>

<groupId>wusc.edu.common</groupId>

<artifactId>edu-common-core</artifactId>

<version>${edu-common-core.version}</version>

</dependency>


<dependency>

<groupId>wusc.edu.facade</groupId>

<artifactId>edu-facade-user</artifactId>

<version>${edu-facade-user.version}</version>

</dependency>

<!-- Common Dependency Begin -->

<dependency>

<groupId>antlr</groupId>

<artifactId>antlr</artifactId>

</dependency>

<dependency>

<groupId>aopalliance</groupId>

<artifactId>aopalliance</artifactId>

</dependency>

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjweaver</artifactId>

</dependency>

<dependency>

<groupId>cglib</groupId>

<artifactId>cglib</artifactId>

</dependency>

<dependency>

<groupId>net.sf.json-lib</groupId>

<artifactId>json-lib</artifactId>

<classifier>jdk15</classifier>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>ognl</groupId>

<artifactId>ognl</artifactId>

</dependency>

<dependency>

<groupId>oro</groupId>

<artifactId>oro</artifactId>

</dependency>

<dependency>

<groupId>commons-beanutils</groupId>

<artifactId>commons-beanutils</artifactId>

</dependency>

<dependency>

<groupId>commons-codec</groupId>

<artifactId>commons-codec</artifactId>

</dependency>

<dependency>

<groupId>commons-collections</groupId>

<artifactId>commons-collections</artifactId>

</dependency>

<dependency>

<groupId>commons-digester</groupId>

<artifactId>commons-digester</artifactId>

</dependency>

<dependency>

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

</dependency>

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

</dependency>

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

</dependency>

<dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

</dependency>

<dependency>

<groupId>commons-validator</groupId>

<artifactId>commons-validator</artifactId>

</dependency>

<dependency>

<groupId>dom4j</groupId>

<artifactId>dom4j</artifactId>

</dependency>

<dependency>

<groupId>net.sf.ezmorph</groupId>

<artifactId>ezmorph</artifactId>

</dependency>

<dependency>

<groupId>javassist</groupId>

<artifactId>javassist</artifactId>

</dependency>

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

</dependency>

<dependency>

<groupId>javax.transaction</groupId>

<artifactId>jta</artifactId>

</dependency>

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

</dependency>


<!-- Common Dependency End -->


<!-- Spring Dependency Begin -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aop</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aspects</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-beans</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-expression</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-instrument</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-instrument-tomcat</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jms</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-orm</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-oxm</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-struts</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc-portlet</artifactId>

</dependency>

<!-- Spring Dependency End -->


<!-- MyBatis Dependency Begin -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

</dependency>

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

</dependency>

<!-- MyBatis Dependency End -->


<!-- Struts2 Dependency Begin -->

<dependency>

<groupId>org.apache.struts</groupId>

<artifactId>struts2-json-plugin</artifactId>

</dependency>

<dependency>

<groupId>org.apache.struts</groupId>

<artifactId>struts2-convention-plugin</artifactId>

</dependency>

<dependency>

<groupId>org.apache.struts</groupId>

<artifactId>struts2-core</artifactId>

</dependency>

<dependency>

<groupId>org.apache.struts</groupId>

<artifactId>struts2-spring-plugin</artifactId>

</dependency>

<dependency>

<groupId>org.apache.struts.xwork</groupId>

<artifactId>xwork-core</artifactId>

</dependency>

<!-- Struts2 Dependency End -->


<!-- Others Begin -->

<dependency>

<groupId>org.apache.tomcat</groupId>

<artifactId>servlet-api</artifactId>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>org.apache.tomcat</groupId>

<artifactId>jsp-api</artifactId>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

</dependency>

<dependency>

<groupId>org.jsoup</groupId>

<artifactId>jsoup</artifactId>

</dependency>

<!-- Others End -->

<!-- Mysql Driver Begin -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<!-- Mysql Driver End -->

<!-- dubbo 需要的jar start -->

<dependency>

<groupId>org.jboss.netty</groupId>

<artifactId>netty</artifactId>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<exclusions>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring</artifactId>

</exclusion>

</exclusions>

</dependency>


<dependency>

<groupId>org.apache.zookeeper</groupId>

<artifactId>zookeeper</artifactId>

</dependency>


<dependency>

<groupId>com.101tec</groupId>

<artifactId>zkclient</artifactId>

</dependency>

<!-- dubbo 需要的jar end -->


</dependencies>


</project>


具體打包過(guò)程請(qǐng)看視頻內(nèi)容,更多課程信息請(qǐng)關(guān)注Dubbo視頻教程官網(wǎng):http://www.roncoo.com

轉(zhuǎn)載于:https://blog.51cto.com/wushuicheng/1704382

總結(jié)

以上是生活随笔為你收集整理的使用Maven构建Dubbo服务的可运行jar包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。