maven 打成可运行jar

来源:互联网 发布:下雪 动态壁纸软件 编辑:程序博客网 时间:2024/05/16 07:12

项目需要把一个项目打成可运行的jar,关联依赖的项目放在lib目录中,最终打成的目录结构如下:

  • bin  --可运行脚本:bat,sh等
  • res -- 项目的资源文件
  • lib -- 依赖其他jar
1. 在pom中加入
<plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-jar-plugin</artifactId>                <configuration>                    <archive>                    <addMavenDescriptor>false</addMavenDescriptor>                        <manifest>                            <addClasspath>false</addClasspath>                            <classpathPrefix>lib/</classpathPrefix>                            <mainClass>com.xx*xx.Main</mainClass>                        </manifest>                        <manifestEntries>     <Class-Path>.</Class-Path>    </manifestEntries>                      </archive>                                                    </configuration>            </plugin>                         <plugin>              <groupId>org.apache.maven.plugins</groupId>              <artifactId>maven-assembly-plugin</artifactId>              <version>2.4</version>              <!-- The configuration of the plugin -->              <configuration>                  <!-- Specifies the configuration file of the assembly plugin -->                  <descriptors>                      <descriptor>package.xml</descriptor>                  </descriptors>              </configuration>              <executions>                  <execution>                      <id>make-assembly</id>                      <phase>package</phase>                      <goals>                          <goal>single</goal>                      </goals>                  </execution>              </executions>          </plugin>  

package.xml:
<assembly>      <id>bin</id>      <!-- 最终打包成一个用于发布的zip文件 -->      <formats>          <format>zip</format>      </formats>        <!-- Adds dependencies to zip package under lib directory -->      <dependencySets>          <dependencySet>              <!-- 不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录-->              <useProjectArtifact>false</useProjectArtifact>              <outputDirectory>lib</outputDirectory>              <unpack>false</unpack>          </dependencySet>      </dependencySets>        <fileSets>          <!-- 把项目相关的说明文件,打包进zip文件的根目录        <fileSet>              <directory>${basedir}</directory>              <outputDirectory>/</outputDirectory>              <includes>                  <include>README*</include>                  <include>LICENSE*</include>                  <include>NOTICE*</include>              </includes>          </fileSet>  -->                     <!-- 把项目的配置文件,打包进zip文件的config目录 -->          <fileSet>              <directory>${basedir}/resources</directory>              <outputDirectory>conf</outputDirectory>              <includes>                  <include>**/**.*</include>              </includes>          </fileSet>                    <!-- 把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的跟目录 -->          <fileSet>              <directory>${basedir}/bat</directory>              <outputDirectory>bin</outputDirectory>              <includes>                  <include>*.*</include>              </includes>          </fileSet>            <!-- 把项目的脚本文件(除了启动脚本文件),打包进zip文件的script目录         <fileSet>              <directory>${project.build.scriptSourceDirectory}</directory>              <outputDirectory></outputDirectory>              <includes>                  <include>startup.*</include>            </includes>          </fileSet>  -->                    <!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 -->          <fileSet>              <directory>${project.build.directory}</directory>              <outputDirectory>bin</outputDirectory>              <includes>                  <include>*.jar</include>              </includes>          </fileSet>      </fileSets>  </assembly>


0 0