需求
核心代码整理出来了,然后需要以jar包的方式给开发人员使用,当然了,本农是先在业务代码中加了一个package,起名为core,为了后续拿出来用。所以想到了一个最容易的方法,就是把现有的代码复制一遍,core之外的都删掉就OK了。好了废话不多说了。
步骤
第一步,打包
core相关代码整理出来以后,打包吧,开开心心执行下mvn的package命令。
执行完了,也看到我想要的jar包了。
第二步,导入本地maven仓库
执行命令,把jar包导入本地仓库
第三步,maven依赖
现在包也有了,直接引入使用吧
<!--core-->
<dependency>
<groupId>com.dlanqi.core</groupId>
<artifactId>dlanqi.core</artifactId>
<version>1.0.0</version>
</dependency>
包能引用,没报错,但是所有的方法代码都引入不进来,如图
先不慌,看下jar包引入了没有
jar包是在的,展开看下路径啥的
哦,看到这里知道了,和别的对比下就知道了,这种打包方式是为了打包spring cloud的,我需要的是可引用的jar包。。。找下发现了,打包的方式不对,具体的区别还没研究
<!--这种是为了打包springcloud的-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- maven-surefire-plugin 这种才是为了打包引用的 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
</plugin>
然后重新打包,再来一遍OK了。
完善
本农不能只考虑自己的jar包OK就行了,我还要考虑剩下的农们。来吧,搭建一个maven私服吧。
因为用过docker,觉得很方便,那就找个docker的方式来吧。
参考
https://www.jianshu.com/p/77af52a75ad8 这里的OK的,但是新版本的密码不是admin123了,登录的时候会提示,在映射出来的文件里(说到映射文件,这里需要把文件的权限开大,我是直接777,这样启动后才能写入如下的这些文件
)
然后会提示修改密码,修改后进入首页
点这个设置,然后选择仓库
这里创建一个自己的仓库,需要选择maven2里的hosted,下边框是我创建好的。
打开详情,这里能看到这个仓库的信息,只需要这个路径就好了
创建完了,把它加入到maven-public组中
这样,这个仓库就可以使用了,打开maven的settings.xml文件,增加servers节点
<servers>
<server>
<id>dlanqi.core</id>
<username>admin</username>
<password>******</password>
</server>
</servers>
然后就可以push自己的jar包到这个私服中了。
mvn deploy:deploy-file -Dfile="dlanqi.core-1.0.1.jar" -DgroupId="com.dlanqi.core" -DartifactId="dlanqi.core" -Dversion="1.0.1" -Dpackaging=jar -Durl="http://xxx:8021/repository/dlanqi.core/" -DrepositoryId="dlanqi.core"
看下仓库中的jar包
当然了,也可以修改pom文件,直接部署到私有仓库中
比如如下的写法,就是可以直接推到仓库中了,需要执行的命令是deploy即可
<distributionManagement>
<repository>
<id>private-release</id>
<url>http://ubuntu.dlanqi.com:8021/repository/private-release/</url>
</repository>
<snapshotRepository>
<id>private-snapshot</id>
<url>http://ubuntu.dlanqi.com:8021/repository/private-snapshot/</url>
</snapshotRepository>
</distributionManagement>
这里有我安装过的两个包
然后修改maven的settings.xml文件,增加私服的镜像路径
<mirror>
<id>dlanqimaven</id>
<name>dlanqi maven</name>
<url>http://xxx:8021/repository/dlanqi.core/</url>
<mirrorOf>*</mirrorOf>
</mirror>
至此,大功告成。
这里需要注意的一点是,如果只有私服,那么没有问题,但是如果阿里的仓库在用,同时想使用私有仓库,就不能配置*了需要做个修改,这个很重要,不然jar包下载不下来,只能下载下来两个lastUpdated文件。。。。。。。。。。。。。。
废话不说了,需要修改后的配置文件是
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<localRepository>C:\Users\Rex\.m2\repository</localRepository>
<interactiveMode>true</interactiveMode>
<offline>false</offline>
<mirrors>
<mirror>
<id>dlanqi.core</id>
<name>dlanqi maven</name>
<url>http://ubuntu.dlanqi.com:8021/repository/private-release/</url>
<mirrorOf>private-release</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<!-- <mirrorOf>central</mirrorOf> -->
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<repositories>
<repository>
<id>private-release</id>
<url>http://ubuntu.dlanqi.com:8021/repository/private-release/</url>
</repository>
<repository>
<id>private-snapshot</id>
<url>http://ubuntu.dlanqi.com:8021/repository/private-snapshot/</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>development</activeProfile>
</activeProfiles>
<servers>
<server>
<id>private-release</id>
<username>rex</username>
<password>123456</password>
</server>
<server>
<id>private-snapshot</id>
<username>rex</username>
<password>123456</password>
</server>
</servers>
</settings>
这里调查了好久,终于在一位大神那里了解了maven配置文件的具体用法了,感谢
参考
https://www.jianshu.com/p/b734f075a85a