如何在不触发测试的情况下运行maven-release-plugin?
我试过了
-Dmaven.test.skip=true
Run Code Online (Sandbox Code Playgroud)
和
-DskipTests
Run Code Online (Sandbox Code Playgroud)
和
-DpreparationGoals=clean
Run Code Online (Sandbox Code Playgroud)
......但没有工作.
是的,我知道如果测试没有通过我不应该发布,但我无法控制让我的同事编写可靠的测试.
我在最新版本的Jenkins和Maven Release插件上使用SVN,Maven 3.0.3.我正在尝试使用Maven发布插件(通过Jenkins)进行干运行,因此执行选项...
Executing Maven: -B -f /scratch/jenkins/workspace/myproject/myproject/pom.xml -DdevelopmentVersion=53.0.0-SNAPSHOT -DreleaseVersion=52.0.0 -Dusername=***** -Dpassword=********* -DskipTests -P prod -Dresume=false -DdryRun=true release:prepare
Run Code Online (Sandbox Code Playgroud)
但干运行正在消失,错误如下......
[JENKINS] Archiving /scratch/jenkins/workspace/myproject/myproject/pom.xml to /home/evotext/hudson_home/jobs/myproject/modules/org.mainco.subco$myproject/builds/2013-11-18_16-09-14/archive/org.mainco.subco/myproject/52.0.0/myproject-52.0.0.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project myproject: You don't have a SNAPSHOT project in the reactor projects list.
cause : You don't have a SNAPSHOT project in the reactor projects list.
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) …
Run Code Online (Sandbox Code Playgroud) 我在运行Maven发布插件准备步骤时mvn release:prepare --batch-mode -DreleaseVersion=1.1.2 -DdevelopmentVersion=1.2.0-SNAPSHOT -Dtag=v1.1.2 -X
从Atlassian Bamboo计划获得以下错误输出.但是在命令行中执行相同操作可以正常工作.完整的错误堆栈如下.
任何想法如何解决?
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project hpcmom: An error is occurred in the checkin process: Exception while executing SCM command. Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project hpcmom: An error is occurred in the checkin process: Exception while executing SCM command.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at …
Run Code Online (Sandbox Code Playgroud) 我想用我的快照部署源代码和javadoc.这意味着我想自动化以下命令:
mvn clean source:jar javadoc:jar deploy
Run Code Online (Sandbox Code Playgroud)
只是为了执行:
mvn clean deploy
Run Code Online (Sandbox Code Playgroud)
我不希望在install
阶段(即本地构建)中执行javadoc/sources生成.
我知道source/javadoc插件可以与release
插件的执行同步,但我无法弄清楚如何将它连接到快照发布.
我们正在使用hudson上的maven发布插件并尝试自动执行发布过程.发布:准备工作正常.当我们尝试执行release:perform时,它会失败,因为它会尝试将源工件两次上传到存储库.
我试过的东西,
它仍然吐出这个错误.
[INFO] [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http
[INFO] [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http
[INFO] [DEBUG] Checking for pre-existing User-Agent configuration.
[INFO] [DEBUG] Adding User-Agent configuration.
[INFO] [DEBUG] not adding permissions to wagon connection
[INFO] Uploading: http://xx.xx.xx.xx:8081/nexus/content/repositories/releases//com/yyy/xxx/hhh/hhh-hhh/1.9.40/hhh-hhh-1.9.40-sources.jar
[INFO] 57K uploaded (xxx-xxx-1.9.40-sources.jar)
[INFO] [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http
[INFO] [DEBUG] Using Wagon implementation lightweight from default …
Run Code Online (Sandbox Code Playgroud) 我想使用maven发布插件发布一个快照项目'foo-1.0-SNAPSHOT'.该项目取决于尚未发布的第三方模块"bar-1.0-SNAPSHOT".我在项目的pom.xml中使用选项'allowTimestampedSnapshots'来允许带时间戳的快照,但我认为第三方模块(bar)没有时间戳,除非我自己构建它,因为maven仍抱怨未解决的SNAPSHOT依赖项.
有没有办法释放项目foo,无论依赖SNAPSHOT项目如何,如果不是,我怎么能为第三方项目添加时间戳?
我有一个多模块项目.
parent POM (1.0-SNAPSHOT) |-- module1 (1.0-SNAPSHOT) |-- module2 (1.0-SNAPSHOT) `-- module3 (1.0-SNAPSHOT)
当我执行mvn release时:准备它验证父POM是否有SNAPSHOT版本,并且所有相关模块都没有SNAPSHOT版本.如何自动将所有子模块从SNAPSHOT更新到下一个发行版本?
我想自动增加所有模块的版本.
我有一个Maven项目,我正在尝试配置使用maven发布插件.发布过程的一部分是使用Maven GPG插件来签署工件,这些工件需要GPG签名密钥密码才能成功.因为这些构建需要在非交互式环境中运行,(CI-Server)这些参数作为参数传递给maven,形式为
-Dgpg.passphrase=XXX
Run Code Online (Sandbox Code Playgroud)
对于快照构建,一切正常; Maven GPG插件看到传入的密码短语,工件按预期构建,签名和部署,但是,当我尝试使用发布插件时,系统会提示我输入gpg签名密钥密码.我已经阅读了几个关于类似问题的讨论,这些讨论来自于发布插件,这个问题是另一个maven的调用,它没有收到传入的参数.最流行的修复似乎是使用"arguments"参数,如下所示:
-Darguments="-Dgpg.passphrase=XXX"
Run Code Online (Sandbox Code Playgroud)
据说这会被传递给分叉的实例,但不幸的是,它并没有消除提示.
由于签名工件不是将发布工件部署到公共maven repos的不常见的先决条件,并且可能大多数生成这些工件的实体使用某种形式的CI,我无法想象我是唯一遇到此问题的人.有人找到了解决方法吗?
关于接受的答案的注意事项:
接受的解决方案将无法与Maven 3.0 - 3.0.3和3.0.3一起使用,恰好是在OSX Mountain Lion上默认使用java安装的. 请参阅此处了解详情.您需要升级到3.0.4.
我正在尝试准备我的maven项目的发布mvn release:prepare
但它失败并出现以下错误:
引起:org.apache.maven.plugin.MojoFailureException:缺少必需的设置:必须指定scm connection或developerConnection.
在maven.apache.org上阅读了这些设置后,我发现有SVN(版本控制)设置.但我没有使用版本控制.在这种情况下我应该如何制作maven?
我正在使用maven 3.0.3.
我在Spotify的docker-clientmvn release:prepare -Darguments="-Dmaven.test.skip=true -DskipTests"
的主要结账时运行.但我不能让maven的发布插件跳过测试.为什么maven在这种情况下不尊重CLI标志?
我也很好奇是什么原因导致release插件执行surefire-plugin.没有指定的surefire-plugin pom.xml
.
mvn --version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T12:29:23-05:00)
Maven home: /usr/local/Cellar/maven/3.2.5/libexec
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.2", arch: "x86_64", family: "mac"
Run Code Online (Sandbox Code Playgroud) maven ×7
maven-2 ×3
release ×3
java ×2
snapshot ×2
bamboo ×1
code-signing ×1
git ×1
gnupg ×1
jenkins ×1
multi-module ×1
nexus ×1
versioning ×1