Maven————myeclipse用maven构建dubbo服务的可执行jar包

在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

猜你喜欢

转载自blog.csdn.net/java_dotar_01/article/details/83374448
今日推荐