发布网友 发布时间:2022-04-23 17:08
共1个回答
热心网友 时间:2022-04-14 08:11
maven对构件的更新判断基本上是两种,一种是稳定版本,一种是maven特有的SNAPSHOT版本。
稳定版本很好判断,直接根据maven构件的坐标体系就能够获得。先从本地仓库中找,如果本地仓库没有,就从pom.xml和setting.xml配置的远程仓库来找。
SNAPSHOT版本的判断比较麻烦,基本步骤如下:
假设我在2014年08月22日09时40分52秒在我自己的电脑上使用 “mvn install” 构建了“com.mycompany.demo:test:1.0-SNAPSHOT”。
那么Maven会在本地仓库目录“~/.m2/com/mycompany/demo/test/1.0-SNAPSHOT/”下生成文件“maven-metadata-local.xml”,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>com.mycompany.demo</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<snapshot>
<localCopy>true</localCopy>
</snapshot>
<lastUpdated>20140822084052</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>1.0-SNAPSHOT</value>
<updated>20140822084052</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0-SNAPSHOT</value>
<updated>20140822084052</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>
十点钟的时候,其他同事更新了com.mycompany.demo:test:1.0-SNAPSHOT的内容,并通过 "mvn deploy" 发布到了公司的Maven服务器上。
公司Maven服务器上产生了文件:
test-1.0-20140822.100021-1.jar
test-1.0-20140822.100021-1.pom
并更新了maven-metadata.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>com.mycompany.demo</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20140822.100021</timestamp>
<buildNumber>34</buildNumber>
</snapshot>
<lastUpdated>20140822100021</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>1.0-20140822.100021-1</value>
<updated>20140822100021</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0-20140822.100021-1</value>
<updated>20130407081828</updated>
</snapshotVersion>
</versioning>
</metadata>