Maven(二) deploy

通过maven将项目管理起来之后,拉取pom文件中的依赖项目。估计大部分小伙伴都想过这些文件是哪里来的,怎么来编译呢。

微服务下的相互引用

相信接触过微服务架构的java开发伙伴,都对依赖其他项目的用法比较熟悉。往往在一个微服务中,A服务被B服务依赖,在B服务的pom文件中必然会有A服务的引用配置。

未命名文件.png

微服务下的deploy

在微服务框架下服务module较少的情况下,每次编译直接全量编译解决引用项目的问题。但是,随着项目的逐渐增大,项目开发人员的增加,不可避免的会出现:代码提交不及时,接口在不知情的情况下被别人改了等其他各种情况。

对此,将我们微服务中引用的接口、类提取为一个可单独引用模块是必不可少的一个步骤。在实现这个过程中,我们就需要将我们的代码提交打maven服务器上。当然,我们不可能把我们公司自己的项目代码上传到maven的公共服务器上,除了允许可以开源的项目。在这里,我们还需要一个maven私服。


maven二之deploy-微服务.png

在将代码上传到maven服务器上的操作就比较简单了,只需要执行mvn deploy就可以了。但是在执行之前,我们需要配置上传的maven服务器地址。

maven私服地址配置:

distributionManagement:分发项目到远程仓库

repository:仓库地址

snapshotRepository : 快照仓库存储地址

<distributionManagement>
    <repository>
        <id>test</id>
        <name>test</name>
        <url>http://test.cn/nexus/content/repositories/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <name>snapshots</name>
        <url>http://test.cn/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

注意:大部分公司基本都有自己的maven私服,但是基本上都会限制上传项目到里面去。因为虽然有定时清理策略,但是要很合理的清理仓库就比较麻烦了,所以从源头限制是最好的。

上传源码配置:

在项目上传到私服,其他小伙伴拉取到了之后,很多小伙伴都会很奇怪为啥我代码里面的注释拉不到。点击无数次idea里面的down resources都拉不到。其实这个时候也比较简单,只需要在·pom文件的bulid下增加一个plugin就行了。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <attach>true</attach>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>jar-no-fork</goal>
            </goals>
        </execution>
    </executions>
</plugin>

deploy的建议-快照(SNAPSHOT)

我们在deploy的时候,每次deploy上去的代码,同一个版本号别人都只能拉到一次。在快速迭代的版本过程中,怎么能够避免每次都要更改版本号,并且提示对应的开发伙伴呢。

这个时候,我们就需要使用maven快照了。我们在版本后面增加-SNAPSHOT,就不需要每次都更改版本号,只要等到版本迭代稳定后,更改版本上线即可。

<version>1.0.0-SNAPSHOT</version>

当然,每次拉取代码编译的时候,就要加上-U来强制拉取引用的项目了。

如打包的时候:

mvn clean package -U

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容