在Myeclipse中新建一个空的maven项目,打包方式为jar,默认的 src/main/resources下面没有文件,需要在这个路径下面新建 META-INF————>spring,两个目录,建好以后的,目录结构为
为什么要这么建呢?
因为我们这里使用 dubbo自带的Main方法启动服务,而自带的Main方法会默认读取 classes/META-INF/spring下面的spring的配置信息,所以先建好相关目录。
那怎么才能 让系统用dubbo自带的Main方法启动呢,这里就需要在pom.xml中配置
<build>
<resources>
<!--这里加载 resources目录下的配置文件和xml文件,比如一些log或者相关的db的配置-->
<resource>
<targetPath>${project.build.directory}/classes</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<!-- 结合com.alibaba.dubbo.container.Main,因为dubbo自带的Main需要读取classes/META-INF/spring下的spring配置信息 -->
<resource>
<targetPath>${project.build.directory}/classes/META-INF/spring</targetPath>
<directory>src/main/resources/spring</directory>
<filtering>true</filtering>
<includes>
<!--将spring相关的配置文件拷贝到classes/META-INF/spring下 -->
<include>spring-*.xml</include>
</includes>
</resource>
</resources>
<!--maven的编译版本,我这里是jdk1.8,随自己情况而定-->
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!-- 配置manifest文件,以及服务jar的启动类 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classesDirectory>target/classes/</classesDirectory>
<archive>
<manifest>
<!--执行Jar文件的启动类,使用dubbo自带的启动类 -->
<mainClass>com.alibaba.dubbo.container.Main</mainClass>
<!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
<useUniqueVersions>false</useUniqueVersions>
<addClasspath>true</addClasspath>
<!--将服务依赖的jar文件,放到lib文件夹下 -->
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<!-- 将运行服务的jar文件,依赖的其它jar文件放在lib文件夹下 -->
<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>
</plugins>
</build>
还需要自己加上<dependencies>的依赖包,然后run as ,选择maven build...,输入package,然后就会在target的目录下面有相关的lib包
具体的代码项目链接 https://download.csdn.net/download/java_dotar_01/10743106