欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Maven 打jar ,instanll 博客分类: maven mavenjarinstallmaven 打成jar. 

程序员文章站 2024-03-19 10:29:40
...

一、序言

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