您好我已经从我的工作站发布了一个没有问题的项目。我最近尝试从1.0.0-SNAPSHOT发布另一个项目。但是当它实际发布时,它会将1.0.1-SNAPSHOT释放到快照存储库而不是1.0.0以释放存储库。 我已经完成了dryRun = true,看起来很好。实际上它默认为版本:
What is the release version for "Appname"? (...) 1.0.0: :
What is SCM release tag or label for "Appname"? (...) Appname-1.0.0: :
What is the new development version for "Appname"? (...) 1.0.1-SNAPSHOT: :
我采取所有默认值。 但是,当我执行" mvn发布时:执行" 这就是它的作用:
[INFO] Uploading: http://{corporate-nexus-site}/snapshots/{app-path}/1.0.1-SNAPSHOT/fei-logging-formatter-1.0.1-20140929.153303-1.jar
...
[INFO] [INFO] BUILD SUCCESS
我正在使用最新的maven,我手动添加了最新版本的插件。我可以使用相同的parent和settings.xml设置发布另一个项目。 在干燥运行之后查看属性文件并准备它对我来说都是正确的。 我原本认为我的发行版设置错误,并且正在向快照存储库发布一个版本,但是你可以看到它实际上认为它做得很好并发布了快照。
皇室混淆。
关于尝试什么的任何想法?
感谢。
更新:在项目中,我将pom从1.0.0-SNAPSHOT更新为1.0.0并进行了" mvn deploy"它把它完全放在了我预期的版本中,当然没有所有好处。
UPDATE2 :Pom(保护有罪的公司名称)
<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>logging-formatter</groupId>
<artifactId>logging-formatter</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>Logging Formatter</name>
<description>logging tool to format your logging in the standard cn way.</description>
<parent>
<groupId>com.companyname.pom.parent.master</groupId>
<artifactId>cn-pom-parent-master</artifactId>
<version>2014.3.0</version>
</parent>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
</build>
<scm>
<url>http://svn.sys.ds.companyname.com/svn/cn-logging</url>
<connection>scm:svn:http://svn.sys.ds.companyname.com/svn/cn-logging</connection>
<developerConnection>scm:svn:http://svn.sys.ds.companyname.com/svn/cn-logging</developerConnection>
</scm>
<organization>
<name>CompanyName Enterprises</name>
</organization>
<ciManagement>
<system>Jenkins</system>
<url>http://jenkins.sys.ds.companyname.com:8080/job/cn-logging-DEVELOP/</url>
</ciManagement>
</project>
更新3:添加父设置信息
SETTINGS.XML
<repositories>
<repository>
<id>fei-releases</id>
<name>Ferguson Release Repository</name>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<url>http://{companyname}/nexus/content/repositories/releases</url>
<layout>default</layout>
</repository>
<repository>
<id>fei-snapshots</id>
<name>Ferguson Snapshot Repository</name>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<url>http://{companyname}/nexus/content/repositories/snapshots/</url>
<layout>default</layout>
</repository>
<repository>
<id>fei-thirdparty</id>
<name>Ferguson 3rd Party Repository</name>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<url>http://{companyname}/nexus/content/repositories/thirdparty/</url>
<layout>default</layout>
</repository>
</repositories>
PARENT REPOSITORIES:
<repositories>
<repository>
<id>third-party</id>
<name>3rd Party Repository</name>
<url>http://{companyname}/nexus/content/repositories/thirdparty/</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories/>
PARENT DISTRIBUTION MANAGEMENT:
<distributionManagement>
<repository>
<id>fei-releases</id>
<name>Ferguson Release Repository</name>
<url>http://{companyname}/nexus/content/repositories/releases</url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>fei-snapshots</id>
<name>Ferguson Snapshot Repository</name>
<url>http://{companyname}/nexus/content/repositories/snapshots</url>
<layout>default</layout>
</snapshotRepository>
</distributionManagement>
答案 0 :(得分:0)
我做了一个&#34; mvn发布:干净发布:准备&#34;然后是一个&#34; mvn 释放:执行&#34;我用来释放另一个项目的相同步骤 问题使用同一个父母。
所以你有另一个项目在发布后部署得很好吗? (您在回购中看到发布版本)?
如果是这样,这听起来像是一个问题&#39;项目。你能分享一下它的pom.xml吗?
答案 1 :(得分:0)
@SteveHolt,
我在你的pom.xml文件中看到一个红色标记:
<scm>
<url>http://svn.sys.ds.companyname.com/svn/cn-logging</url>
<connection>scm:svn:http://svn.sys.ds.companyname.com/svn/cn-logging</connection>
<developerConnection>scm:svn:http://svn.sys.ds.companyname.com/svn/cn-logging</developerConnection>
</scm>
这些网址都不包含trunk
,branches
或tags
个关键字。
因此,当Maven创建发布标记时,它会告诉SVN使用与以前相同的URL:
http://svn.sys.ds.companyname.com/svn/cn-logging
当release-prepare
运行时,它会执行
$ svn checkout http://svn.sys.ds.companyname.com/svn/cn-logging/
但它无法区分开发主干的发布标记。
因此,它检索发布后快照修订版(这是最新的提交)而不是发布版本(前面的提交)。
<强> 解决方案 强>:
在trunk
下创建cn-logging
目录,并将所有代码移入其中:
svn/cn-logging/
trunk/
pom.xml
src/
main/
java/
branches/
tags/
希望有所帮助。