java – 如何使用maven打包并运行一个简单的依赖关系的命令行应用程序?

我是全新的 java和maven,所以这可能很简单.

如果我按照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,btw. vim从命令行.

谢谢!

麦克风.

解决方法

您可以通过将Main-Class属性添加到其清单文件来创建一个jar可执行文件.在Maven中,这是由Archiver插件完成的.要添加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或双击它(在所有平台中都不可用).

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...