前言
写这篇博客主要是由于多次maven项目依赖都遇到一个问题:每次打包后被依赖的项目都打成了war包,从而不能使用里面的方法。百度查询了很多博客也没有详细解答这部分问题,所以经过多次试验,把个人认为最简单的方式以图形并茂的方式粘在这里,希望对来这里的读者有所帮助。
maven项目依赖主要分为两大部分:打jar包,依赖。
打jar包
新建一个maven项目
1.右键空白处->new->other->Maven Project
选择artifact id 为webapp的 next.
填好必要信息,就创建好一个maven项目了
可这个maven项目的目录结构不对
右键项目->build Path->config Build Path->找到JRE->修改成javaSE1.7以上.注意不要用J2SE不然无法打包。
现在的目录才是我们想要的。
将这个项目打成jar包
打开pom.xml->将packaging 修改为jar,修改后项目会多一个红叉
右键项目->maven->update project ,红叉消失
右键项目->run as->maven install,打包后打开打包所在地,会看到一个jar包
打成jar后,我们只需将这个项目依赖给其他项目即可
项目依赖
和之前一样,新建一个maven项目product,步骤省略.
打开需要关联该项目的pom.xml->dependencies->add->搜索刚打的jar包的名称,别忘记叉掉pom.xml并且保存。
如果没有直接添加jar包的工具
直接修改pom.xml
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.dubbo</groupId>
<artifactId>product</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>product Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- 添加下面这段 -->
<!-- 开始 -->
<dependency>
<groupId>my.dubbo</groupId>
<artifactId>inter</artifactId>
<version>2.0</version>
</dependency>
<!-- 结束 -->
</dependencies>
<build>
<finalName>product</finalName>
</build>
</project>
右键该项目->properties->deployment assembly,可以看到该项目已经打了jar包,可以使用了
下面看一个实例
项目inter
接口sayHelloWorldInter
package com.dao.chu.inter;
/**
*
* 第一个项目的接口
*
* @version [版本号, 2017年1月24日]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public interface sayHelloWorldInter
{
/**
*
* sayHelloWorld方法
* @see [类、类#方法、类#成员]
*/
public void sayHelloWorld();
}
项目product
实现类sayHelloWorldImpl
package com.dao.chu.product;
import com.dao.chu.inter.sayHelloWorldInter;
/**
*
* 第二个项目,实现sayHelloWorldInter
*
* @version [版本号, 2017年1月24日]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class sayHelloWorldImpl implements sayHelloWorldInter
{
/**
* 打印hello World信息
*/
public void sayHelloWorld()
{
System.out.println("hello World..");
}
}
这样我们就把接口抽离出来了。
总结