Dubbo做一个服务提供者,以Dubbo方法自提供的Main方法启动,供消费者调用,希望做到类似SpringBootJar包启动。最后采用Maven打包插件把服务提供者打包成Jar放入服务器启动。
思路
Jar包执行访问Jar包中META-INF/MANIFEST.MF文件,文件包含Jdk编译版本,Jar依赖,Jar版本,启动Main方法等。
所以两个插件,
- Maven编译后把Jar放入固定文件夹下(target\lib)
- Maven插件打包设置Main方法
-
生成依赖Jar包到固定文件夹下
<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> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin>
-
设置生成Jar启动类
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <classesDirectory>target/classes/</classesDirectory> <archive> <manifest> <mainClass>com.alibaba.dubbo.container.Main</mainClass> <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> <manifestEntries> <Class-Path>.</Class-Path> </manifestEntries> </archive> </configuration> </plugin>
网友评论