码迷,mamicode.com
首页 > 编程语言 > 详细

Maven- 使用Maven构建一个可执行jar

时间:2018-03-03 12:14:33      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:依赖   利用   htm   hive   参考   创建   org   sse   站点   

How to Create an Executable JAR with Maven

1.最重要的是使用jar类型,<packaging>jar</packaging>。当然不指定的话,默认Maven使用的就是jar。

2.利用maven-dependency-plugin来手动创建(方法一

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>
                    ${project.build.directory}/libs
                </outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

①. goal被指定为copy-dependencies,意思是将所有的依赖拷贝到指定的outputDirectory中。例子中是在项目构建文件夹(通常是target文件夹)中创建一个libs文件夹。

②. 使用对①中依赖的连接,创建可执行的、类路径感知的jar。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>libs/</classpathPrefix>
                <mainClass>
                    org.baeldung.executable.ExecutableMavenJar
                </mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

manifest配置,追加一个前缀为libs的classpath,提供了main class的信息——main class的完全限定名。

评价

优点:透明的过程使得我们可以在这里指定每一步

缺点:手动做,依赖不在最终的jar中。意味着可执行jar只在libs文件夹对jar可访问并可见时才能运行。

2.2 Apache Maven Assembly Plugin

Apache Maven Assembly Plugin让用户汇总项目的输出到一个可执行包中,包括它的依赖,模块,站点文档,其他文件。

主要的goal是single,用来创建所有的assemblies。

 

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <archive>
                <manifest>
                    <mainClass>
                        org.baeldung.executable.ExecutableMavenJar
                    </mainClass>
                </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </execution>
    </executions>
</plugin>

也需要提供main class的信息。不同的是它会自动拷贝所有需要的依赖到jar文件中。

descriptorRef提供了一个名字,它被用于加到项目名上。

 

可参考Links:

1. maven-assembly-plugin/usage

2. Pre-defined Descriptor Files

 

Maven- 使用Maven构建一个可执行jar

标签:依赖   利用   htm   hive   参考   创建   org   sse   站点   

原文地址:https://www.cnblogs.com/niaomingjian/p/8495922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!