`
greemranqq
  • 浏览: 967027 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Maven 打jar ,instanll

阅读更多

一、序言

       有些情况下,我们需要将公共的工程,或者公共的接口打成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 服务里面,这种操作很多。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics