我对java和maven都是全新的,所以这可能非常简单。
如果我按照maven2 hello world
说明操作:
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来自命令行。
谢谢!
麦克
答案 0 :(得分:17)
您可以使用maven本身来运行它,我相信它会为您设置类路径。
mvn compile
将编译它 然后你跑:
mvn exec:java -Dexec.mainClass="com.mycompany.app.App"
将执行它。
您可以查看http://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/以获取有关运行方式的更多信息(包括将命令行参数传递给您要运行的内容)
答案 1 :(得分:12)
您可以通过将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
或双击它(并非在所有平台上都可用)。
答案 2 :(得分:3)
如果您希望它和其他人一样简单,那么您可以使用maven-assembly-plugin生成一个包含所有依赖项的jar。示例如下:http://maven.apache.org/plugins/maven-assembly-plugin/usage.html,执行部分:构建程序集
答案 3 :(得分:2)