一、序言
有些情况下,我们需要将公共的工程,或者公共的接口打成jar,然后上传到公共仓库,让其他工程共用,这里我模拟dubbo 的,写一个简单接口工程,然后打成jar,让其他工程使用。
二、实践
1.用idea 建立一个maven 工程,目录结构src->main->java
2.在Java 下面建立一个接口 和一个静态类,并且作为java source ,表示我要让其他人调用
public interface HelloService {
public void sayHello(String name);
}
public class HelloUtil {
public static Integer add(int a,int b){
return a+b;
}
}
4.pom.xml 文件配置
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>demo-interface</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<!-- 编码 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<distributionManagement>
<!-- 这是正式版 -->
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>E:\maven-refrence</url>
</repository>
<!-- 测试版 -->
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>E:\maven-refrence</url>
</snapshotRepository>
</distributionManagement>
5.可以直接利用idea 的maven:jar 执行
6.同时通过install 到仓库,我是测试因此放到本地仓库的。
mvn install:install-file -Dfile=E:\projects\demo-interface\target\demo-interface-1.0.jar -DgroupId=com.demo -DartifactId=demo-interface -Dversion=1.0 -Dpackaging=jar
7.创建另外的工程demo2,然后在pom.xml 里面引用
<dependency>
<groupId>com.demo</groupId>
<artifactId>demo-interface</artifactId>
<version>1.0</version>
</dependency>
8.写个mian 函数调用
public static void main(String[] args) {
System.out.println(HelloUtil.add(1,2));
}
注意,在执行过程中可能出现一些配置上的异常,也可能是跟新不及时等,多看看异常原因,或者删除从新来,搞搞总会好的~。~。
小结:
1.上面是很基础的步骤,但是对于没使用过maven 的人来说,还是需要个参照物~。~
2.关于打成jar 这种模式,不光是多处使用,还有个原因是因为项目复杂了,需要统一的配置管理,而且项目之间需要依赖,因此提炼公共部分,或者封装一部分实现,上面你只能调用,是看不到我的实现的,如果我不上传实现。同理在SOA 服务里面,这种操作很多。