簡體   English   中英

可以在IntelliJ中運行Maven項目,但不能從終端運行

[英]Can run a Maven project within IntelliJ but not from Terminal

我已經在IntelliJ中創建了一個利用Maven的控制台應用程序。 從IntelliJ中,我可以毫無問題地編譯和運行該應用程序...

但是從終端我執行以下命令(與pom.xml在同一目錄中)

mvn Install -U
java -classpath target/myApp-2.0-SNAPSHOT.jar MainClass

install命令似乎可以毫無問題地構建jar文件。 第二個命令給我以下錯誤

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonParseException

在我的pom.xml中,我的依賴關系如下

<dependencies>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.5.0</version>
    </dependency>
</dependencies>

在我看來,它並沒有引入傑克遜的依賴關系,但我不確定在這里缺少什么。

Maven對運行時類路徑(僅對編譯時類路徑)沒有影響。 您需要將依賴項添加到類路徑。

如前所述,您遇到的問題是您的jar需要其他jar才能執行。

我看到3個解決方案:

1-如上所述,在運行程序時,請添加-classpath參數

2-使用maven-jar-plugin在清單中添加依賴項,然后只需在請求的位置具有依賴項即可執行所有操作。 參見http://maven.apache.org/shared/maven-archiver/examples/classpath.html#a添加

3-使用jarjar之類的插件將jar中的依賴項打包: http ://sonatype.github.io/jarjar-maven-plugin/

這將創建一個獨立的jar

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM