美文网首页
maven打包可执行文件

maven打包可执行文件

作者: Lucky_Micky | 来源:发表于2016-04-02 22:08 被阅读209次

如果你需要将maven构建的项目打包成可执行jar且包含所有依赖,Assembly插件可以帮助你实现这个需求。

1. Assembly插件简介

Assembly插件的两个主要目标:

  • assembly:assembly
    被设计成直接从命令行调用,它永远不应该绑定到生命周期阶段。目标是一个聚合mojo。
  • single mojo
    被设计成作为你每日构建的一部分,应该被绑定到项目生命周期的某个阶段。

Assembly插件为一些常用的归档类型提供了内置的描述符:

  • bin
    不是本文重点,省略...
  • jar-with-dependencies
    jar-with-dependencies描述符构建一个带有主项目jar文件和所有项目运行时依赖未解开内容的JAR归档文件。外加上适当的Main-Class Manifest条目,该描述符可以为你的项目生成一个自包含的,可运行的jar,即使该项目含有依赖。
  • project
    不是本文重点,省略...
  • src
    不是本文重点,省略...

2. 创建一个自包含的可执行jar

pom.xml中添加如下assembly插件配置:

  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
    <groupId>com.example</groupId>  
    <artifactId>helloworld</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
    <name>hello  world</name>  
    <description>hello world</description>
    <build>    
      <plugins>        
        <plugin>            
          <artifactId>maven-assembly-plugin</artifactId>            
          <version>2.2-beta-2</version>            
          <executions>                
            <execution>                    
              <id>create-executable-jar</id>                    
              <phase>package</phase>                    
              <goals>                        
                <goal>single</goal>                    
              </goals>                    
              <configuration>                        
                <descriptorRefs>                            
                  <descriptorRef>
                    jar-with-dependencies                    
                  </descriptorRef>                        
                </descriptorRefs>                        
                <archive>                            
                  <manifest>                                
                    <mainClass>com.example.helloworld.Main</mainClass>                            
                  </manifest>                        
                </archive>                    
              </configuration>                
            </execution>            
          </executions>        
        </plugin>    
      </plugins>
    </build>
  </project>

执行mvn package后,将会得到一个可执行jar。

参考资料

  1. Maven权威指南中文版

相关文章

网友评论

      本文标题:maven打包可执行文件

      本文链接:https://www.haomeiwen.com/subject/msxulttx.html