将jar文件加到maven的local repository中
可参考:http://www.cnblogs.com/davenkin/archive/2012/02/15/install-jar-into-maven-local-repository.html
对于Maven项目来说,日常使用的多数第三方java库文件都可以从Maven的Central Repository中自动下载,但是如果我们需要的jar文件不在Central Repository中,那么我们就需要手动将自己下载的jar文件加入到Maven的local reposotory中了,此时我们需要向Maven提供用于识别jar文件(可能多个)的groupId, artifactId和version等信息。
1. 进入maven 的local repository下
a. 打开终端,查看maven安装信息:brew info maven
b. 进入maven本地目录下:cd ~/.m2 (Linux/Mac中maven本地路径)
c. 进入repository文件夹下: cd repository
d. 编译打包baseApp.jar, 路径path=/Users/sarah/Desktop/MR-base/target/baseApp.jar
d. 提供用于识别jar文件的groupId, artifactId, version和packaging信息,就可以将jar文件加到maven的local repository中:
mvn install:install-file -Dfile=path -DgroupId=com.aliyun.eleme -DartifactId=baseApp -Dversion=1.0 -Dpackaging=jar
2. 现在,我们的baseApp.jar便可以被其它Maven项目所使用了,为此创建一个Maven工程:
mvn archetype:generate-DgroupId=com.aliyun.eleme.demo -DartifactId=baseApp-demo -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0
3. 删除baseApp-demo目录下已有的App.java, 并创建自己的Main.java文件
rm src/main/java/com/aliyun/eleme/demo/App.java
touch src/main/java/com/aliyun/eleme/demo/Main.java
4. Main.java文件可以引用该jar文件了
package com.aliyun.eleme.demo
import com.aliyun.eleme.baseApp
5. 最后一步,修改pom.xml文件加以对baseApp类的依赖 (绿色部分为添加baseApp类的依赖,红色部分执行步骤一致)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.eleme.matrix</groupId>
<artifactId>qa</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.aliyun.eleme</groupId>
<artifactId>baseApp</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.aliyun.eleme</groupId>
<artifactId>hadoop</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.aliyun.eleme</groupId>
<artifactId>hive</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.9</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>QA</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<encoding>UTF-8</encoding>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.eleme.matrix.App</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>