故事是这样的,昨天有位大佬让我写一个给外部人员调用的api,但是那个项目发布又是内网的,所以让我接口写在一个项目里,而发布给别人用的项目是另一个,于是,就有了下面的故事。
第一次接触,完全不懂
第一步是打包,打包api所在的包就行了,这边配置的是jar,所以打包出的就是jar的形式
我用的是idea里的maven里的 先clean、再compile、再package就好了,至于compil有什么用,忘记了

第二步

如果cmd能执行mvn命令的就可以用cmd直接执行
我用的是idea自带的,点击maven里面的那个字母m
执行:

mvn install:install-file -DgroupId= 1 -DartifactId= 2 -Dversion=3 -Dpackaging=jar -Dfile= 4
替换值 : 1 == api所在的pom.xml里的groupId
 2 == consultant_core_api (jar包的名字不带版本)
 3 == 1.0.5 (jar的版本)
 4 == E:\PlatformConsultant\consultant_core_api\target\consultant_core_api-1.0.5.jar(jar包的本地路径)

第三步
在需要用到的项目里引用这个jar包(如果只是本地用就可以了,如果不止,请把jar发布到远程maven仓库)
pom.xml中引用

<dependency>
            <groupId>com.chlitina.cloud</groupId>
            <artifactId>consultant_core_api</artifactId>
            <version>1.0.5</version>
        </dependency>

然后可以在对应的项目maven中去查看,如果有,那么就可以愉快的使用了。实体类,bean这些都不需要打包的。

最后的最后提供一个上传jar包到远程maven仓库的链接,emm虽然我用的不是这个,但是我感觉这个应该有点用:jar包到远程maven仓库 第4步,
每个给别的项目调用 的每个api都需要配置

<dubbo:service interface="com.chlitina.cloud.core.api.PlatformConsultantApi" ref="platformConsultantApi" timeout="10000" protocol="json" group="${dubbo_server_group}"></dubbo:service>

这是提供给别的项目使用要的配置:provider下的spring下的spring-provider.xml里

<!-- 查询配置信息服务  -->
	<dubbo:reference id="platfromConfigService"
		interface="com.quwei.platform.backstage.service.api.PlatfromConfigService" check="false"
		timeout="10000" protocol="json" group="${dubbo.content.group}"/>

这是在调用别的项目api里要的配置:
vshop下的consumers下的_mall.xml里

记录一下:
今天用file -》project Settings -》Modules -》里要用的项目模块,导入的对应jar包,这样的好处是idea里面不会报错,然而,就出现了运行是有些类会找不到org.apache.cxf.transport.AbstractConduit的类文件,经过一番查询,最终,我选择了问别的部门的大佬,然后得到的解释是,这样导入是用的idea的方法,所以它认可,并且不会报错,但是运行的时候要用的maven的方式(我并没有在pom里配置)所以导致运行的时候会找不到这个类,在编译时并用不到这些jar包里的所有类,但是运行时要把所有的类都编译,所以就会出现找不到类的情况,最终在项目的最外围pom里添加:

<dependency>
     <groupId>org.apache.cxf</groupId>
      <artifactId>wss4j</artifactId>
      <version>${wss4j_version}</version>
  </dependency>

and版本:

<wss4j_version>1.5.6</wss4j_version>

以及 在需要用到的模块里:

<dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>wss4j</artifactId>
        </dependency>

然后 如果是网上可以下载的只需要点maven自带的刷新就会自动下载了,如果是手写的私人jar包,则需要用到maven里的Execute Maven Goal 执行 上述第二步 。