我会很快。我的Maven版本是3.5.0。我在Web应用程序中使用了一些库。这些库是单独安装的,并部署在工件实例中。
我有以下pom(部分):
<project>
....
<properties>
<process.domain.common.version>0.0.1-SNAPSHOT</process.domain.common.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.intersoft</groupId>
<artifactId>process.domain.common</artifactId>
<version>${process.domain.common.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.intersoft</groupId>
<artifactId>process.domain.common</artifactId>
</dependency>
</dependencies>
</project>
但是在库中,Maven放置了这个库:
process.domain.common-0.0.1-20190319.151024-3.jar
代替此:
process.domain.common-0.0.1-SNAPSHOT.jar
我的依赖项从工件中解决。为什么Maven会使用日期名称而不是SNAPSHOT来放置此临时库?在所有解析的库中都不会发生这种现象。
答案 0 :(得分:1)
最后,我找到了解决方案。
解决方案是在war项目的pom.xml中添加maven war插件:
<properties>
<version.war.plugin>2.5</version.war.plugin>
</properties>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>${version.war.plugin}</version>
<configuration>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
</build>
证明:
答案 1 :(得分:0)
Maven将当前日期附加到快照中,以比较本地存储库中的快照版本和远程存储库中的快照版本,并评估是否需要下载远程jar,因为今天下载0.0.1-SNAPSHOT可能会提供与以下文件不同的文件昨天或明天下载。
答案 2 :(得分:0)
如果您在本地构建快照,则仅以名称0.0.1-SNAPSHOT
进行构建。如果将其部署到Artifactory,它将获得一个内部时间戳版本号,如您提到的那样。
再次下载时,Artifactory为您提供了最新的时间戳。
因此在本地,您有时会使用-SNAPSHOT
版本,有时会使用时间戳版本。战争中的文物如何命名的确切规则对我来说还不清楚,但是无论您是否带有时间戳,都应该没事。