一尘不染

如何使用maven打包和运行具有依赖项的简单命令行应用程序?

java

我对java和maven都是陌生的,所以这可能非常简单。

如果我在hello world这里按照maven2的说明进行操作:

http://maven.apache.org/guides/getting-started/maven-in-five-
minutes.html

一切正常。如果我随后更改pom.xml以从远程存储库引入依赖项,则此依赖项的文件将存储在中~/.m2/repository/new- dependency/

使用说明中的语法hello world来运行应用程序要求将绝对路径添加到我的类路径的依赖项中(通过设置环境变量或通过命令行开关):

java -cp target/my-app-1.0-SNAPSHOT.jar:/.../.m2/.../new-dependency.jar com.mycompany.app.App

这显然很快就会变得笨拙:)

我怀疑这不是运行Java程序的常用方式,我只需要阅读有关.jar文件的更多信息,但是在这样做的同时,我将感谢您提供有关如何正确执行此操作的所有提示。

我不使用IDE,顺便说一句。从命令行vim。

谢谢!

麦克风。


阅读 238

收藏
2020-12-03

共1个答案

一尘不染

您可以通过将Main-Class属性添加到其清单文件来使jar成为可执行文件。在Maven中,这是由存档程序插件完成的。要添加Main-
Class属性,请将其添加到pom.xml中:

 <build>
   <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>        
      <configuration>
        <archive>
          <manifest>
            <addClasspath>true</addClasspath>
            <mainClass>com.mycompany.app.App</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
 </build>

现在,您可以使用以下命令运行jar:java -jar myjar.jar或双击它(并非在所有平台上都可用)。

2020-12-03