Maven-Java项目中的可执行文件

时间:2019-02-07 13:48:33

标签: java maven pom.xml executable-jar

我需要使用maven(用于学校项目)从单个maven命令创建可执行文件。我从未使用过maven,并在stackoverlow上尝试过许多解决方案。解决方案创建了一个jar文件,但该文件从未打开。

这是我的项目结构

<a href={{ basics.mypage }}>Go to my page</a>

我知道这不是行家惯例,但是现在更改它意味着我将不得不为大约40个类调整导入(因为intelliJ不能完全重构所有内容)。

src
    com
        project
                code
                       swing
                             programm
                                      interface
                                               Main.class

要制作可执行文件,我必须放入什么?

2 个答案:

答案 0 :(得分:2)

您需要将插件添加到您的pom.xml文件中

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <configuration>
                <mainClass>com.example.Main</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

并运行程序:mvn clean install exec:java

...这是文档http://www.mojohaus.org/exec-maven-plugin/usage.html

的链接

可能有不同的解决方案,具体取决于您的要求:https://www.baeldung.com/executable-jar-with-maven

答案 1 :(得分:2)

TimurJD的答案是正确的,但是我想逐步解释实际发生的情况以及原因。

  • 要使jar可执行文件,JVM需要知道您的main方法在哪里。

  • 为此,您需要在创建的jar中添加一个名为 META-INF / MANIFEST.MF 的文件。

  • 此文件必须包含对包含您的main方法的类的引用,该方法是这样完成的:

     Main-Class: com.example.ClassContainingMainMethod
    
  • 创建上述文件的方法有很多,但是由于您使用的是maven,因此此插件可以帮助您创建此清单文件

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>com.my.packege.Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  • pom.xml中插入插件后,只需从IDE或命令行运行maven install目标即可。之后,您应该在项目中找到一个名为target的文件夹。该文件夹将包含可执行jar。

  • 要运行jar,可以从命令行调用:

    java -jar MyProject.jar
    

还应注意,除非您遵守将源代码保留在src/main/java中的maven标准,否则您将必须明确指定源文件夹。