我有一個Spring Boot基于應用程序,當我使用 name運行時java它正在生成一個工件。JARmvn clean installmy-nexus-demo-0.0.1-SNAPSHOT.jar但是當我這樣做時,mvn clean deploy我看到部署在我的本地文件系統中(將來my-nexus-demo-0.0.1-20190806.161150-1.jar會使用)。不確定為什么在我使用命令Nexus時附加日期時間和增量 # 作為后綴。mvn clean deploy我已經<finalName>${project.artifactId}</finalName>在我的文章中提到過pom,也具體說明了<uniqueVersion>false</uniqueVersion>。我在這里有幾個問題:.m2我怎樣才能在整個SNAPSHOT和回購中擁有一致的工件名稱RELEASE?開發人員在構建和部署工件時應遵循的最佳實踐是什么?工件名稱不應該始終保持一致嗎?pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>my-nexus-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>my-nexus-demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
1 回答

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
您描述的是預期的行為。在本地,由于快照版本僅使用后綴保存,0.0.1-SNAPSHOT
而在遠程存儲庫(您deploy
訪問的存儲庫)上,快照版本使用時間戳保存。不過,這并不重要,因為如果您請求與 version 的依賴關系0.0.1-SNAPSHOT
,Maven 足夠聰明,可以為您提供該特定版本號的最新時間戳版本。所以它實際上只是一個實現細節。
當您的工件準備好投入生產時,您構建一個發布版本(例如使用 maven-release-plugin)并獲得一個沒有快照或時間戳的版本號。
添加回答
舉報
0/150
提交
取消