一,實例:新建了一個Maven項目,在eclipse中通過 build path –> configure path….將依賴包添加到工程中后,eclipse不報錯了。但是用Maven命令 mvn clean compile 時出錯如下:
原因是在eclipse中添加了 exteneral jar后,還需要在maven中再添加依賴的jar包
Maven手動添加第三方依賴包有兩種方法:
參考:maven 添加第三方依賴 maven中把依賴的JAR包一起打包
第一種方法是使用Maven命令添加,另一種方法則是修改pom.xml文件添加。
現介紹修改pom.xml文件添加:假設我的依賴包在C:\Users\xxx\Desktop\storm.starter\storm.starter\lib\datasource.jar
在pom.xml中添加dependency如下:
<dependency> <groupId>com.my.test</groupId> <artifactId>datasource</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>C:\Users\xxx\Desktop\storm.starter\storm.starter\lib\datasource.jar</systemPath> </dependency>
再重新編譯即可成功,會在項目的根目錄下生成 target\classes 目錄,里面就是生成的各種 .class 文件
再運行, mvn clean package 就可以將所有的編譯好的 .class 文件打成 jar包了。但是,這里貌似沒有解決代碼中存在依賴第三方jar包的問題。???
可以使用maven-assembly-plugin插件將工程依賴的jar都一起打包,在pom.xml中添加配置如下:
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
這時,Maven將會自動地根據 <dependency> </dependency>中的 <scope> </scope>參數來決定將哪些依賴的jar包也一起打包。
另外,用Maven編譯運行項目的一些知識參考:Maven編譯代碼的相關命令
二,在命令行中編譯JAVA文件。假設 Test.java 存放在 com\my\test\Test.java ,且 Test.java 源代碼里面的package語句: package com.my.test;
編譯 : javac com\my\test\Test.java
打jar包: jar cvf test.jar com\test\my\Test.class
查看jar包中的內容: jar vtf test.jar