怎么用maven将dubbo工程打成jar包来运行

互联网 19-4-30
本文中谈及的用maven将dubbo工程打成jar包来运行的方法是:使用maven打包插件maven-jar-plugin在pom.xml文件最后新增一些代码。感兴趣的朋友可以看看,希望能帮到你

maven打包方式

使用maven打包插件maven-jar-pluginpom.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>
  • 运行jar包方式

打包之后的目录结构包含了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包都达到一个jar包中运行,可以使用maven-shade-plugin这个插件。这个插件的功能主要是:将依赖的jar包打包到当前jar包,并且在打包的时候把类重命名,可以解决jar包的多版本冲突,具体可以查询官方插件文档。

相关教程:Java视频教程

以上就是怎么用maven将dubbo工程打成jar包来运行的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: maven
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java怎么销毁session?

相关资讯