一,实例:新建了一个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