在开发时,我们对maven模块使用SNAPSHOT版本(例如1.0-SNAPSHOT).
例如,父模块的Maven Configugration:
<groupId>com.mycomp.basemodule</groupId>
<artifactId>base-module</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>base-module</name>
<modules>
<module>sub-module1</module>
<module>sub-module2</module>
<module>sub-module3</module>
<module>sub-module4</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
例如Child Module的Maven Configugration:
子模块-1:
<parent>
<groupId>com.mycomp.basemodule</groupId>
<artifactId>base-module</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.mycomp.sub-module1</groupId>
<artifactId>sub-module1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>sub-module1</name>
Run Code Online (Sandbox Code Playgroud)
还要考虑其他子模块(2,3,4)的相同配置.
在发布项目/补丁时,我们需要将此SNAPSHOT版本更改为实际发布版本.
有一种粗略的方法可以改变版本.我可以转到父和所有子模块的每个pom.xml,并可以将SNAPSHOT版本更改为发布版本.
有没有其他最佳实践来更改此SNAPSHOT版本以在公共位置发布版本,以便我不需要更新所有pom.xml文件?
我一直在试图解决这个问题几天,我已经看了遍历stackoverflow并且没有一个答案解决了我的问题.我正在尝试使用<version>我的Pom.xml.
<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>
<groupId>maven.Test</groupId>
<artifactId>Hello</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<distributionManagement>
<repository>
<id>Artifactory</id>
<name>Artifactory-releases</name>
<url>${publish.location}</url>
</repository>
<snapshotRepository>
<id>Artifactory</id>
<name>Artifactory-snapshots</name>
<url>${publish.location}</url>
</snapshotRepository>
</distributionManagement>
</project>
Run Code Online (Sandbox Code Playgroud)
我目前正在使用Maven 3.3.3,我已经研究过SCM插件,但那些似乎没有用.我知道你可以通过将它们设置为变量来增加版本,但这对我的开发人员来说并不理想.使用命令运行构建时,mvn deploy我希望版本自动增加到1.0.1,依此类推.
编辑:
我尝试了maven发布,但遇到了一个可能在我身上的问题.对于发布插件,我需要对我的Pom.xml进行编辑吗?我跑了mvn release:prepare但遇到了这个错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3
.2:prepare (default-cli) on project Hello: Unable to check for local modificatio
ns
[ERROR] Provider message:
[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] 'svn' is not recognized as an internal or external command,
[ERROR] operable program or batch …Run Code Online (Sandbox Code Playgroud) 我目前正在为Project Dash开发Maven工具.其中一个悬而未决的问题是如何处理错误.
Maven Central说:没有任何出版物发生变化.这是因为Maven从未试图弄清楚版本是否发生了变化(与SNAPSHOTs不同).
但我可能不得不创建一个新的"发布版",例如Eclipse 3.6.2的一部分.我应该使用哪个版本号?3.6.2.1,3.6.2-1,3.6.2_1,3.6.2pl1?为什么?
当我使用此命令时,我想创建一个没有SNAPSHOT原因的jar文件
mvn -f pom.XML package
Run Code Online (Sandbox Code Playgroud)
创建了两个文件“文件名_SNAPSHOT.jar和文件名_SNAPSHOT_WITH_dependencies.jar”。我想要文件名.jar,我知道我应该在pom.XML中进行编辑,因此我尝试添加此文件
mvn -f pom.XML package
Run Code Online (Sandbox Code Playgroud)
但是它创建了文件名name_SNAPSHOT_source.jar我该如何解决?
我的pom.XML这样的
<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">
<model Version>4.0.0</model Version>
<group Id>MyProject</group Id>
<artifact Id>MyProject</artifact Id>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
Run Code Online (Sandbox Code Playgroud)