[英]How to compile Maven based Java project to run it from command line
我有一個Maven項目,我需要以某種方式進行編譯,以便能夠將已編譯的文件傳輸到另一台計算機上,然后在該計算機上執行(可能使用不同的Java版本)。 我看着這個問題
並能夠執行:
mvn clean install
mvn dependency:copy-dependencies
但是當我嘗試:
cd target/
java -cp myApp-0.0.1.jar:dependency myApp
我有
Error: Could not find or load main class myApp
我的pom.xml沒有mvn-assembly-plugin或maven-jar-plugin(並且在mvn全新安裝后,我在target /中成功獲取了.jar)。
我不確定這些步驟是否與我的目標相關,因為我需要創建的東西可以在沒有任何java -jar或mvn的情況下運行,並且可以移植並在其他機器上運行。
有一個Maven構建插件,它將您的所有依賴項捆綁在一個JAR中。 您可以簡單地執行它
java -jar mybundled.jar
無需關心類路徑依賴關系。
這里是Maven
插件。 用入口點替換MainClass
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.yourdomain.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
由於它與package lifecycle
,因此在執行完...之后,您將在目標目錄中找到捆綁的JAR。
mvn package
關於您的代碼不會在另一台計算機上運行的擔憂,Java與平台無關, 通常您可以依靠它。 但是,我想到了三件事可能會使生活變得艱難:
ps
不能在Windows上運行,而dir /s
可能無法在* nix上運行。 source
和target
編譯選項: http : //docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#crosscomp-example
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.