We use maven-changes-plugin to generate release announcement. Unfortunately, "mvn changes:jira-report" commands returns "Falling back to RSS for issue download: This JIRA server does not support version 2 of the REST API, which maven-changes-plugin requires.". Please see command error log below:
[INFO] Falling back to RSS for issue download: This JIRA server does not support version 2 of the REST API, which maven-changes-plugin requires.
[WARNING] Unable to respond to any of these challenges: {oauth=OAuth realm="https%3A%2F%2Fjira.myjira.com%3A8443"}
[INFO] Downloading from JIRA at: https://jira.myjira.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?tempMax=100&reset=true&jqlQuery=project+%3D+CP+AND+fixVersion+%3D+%223.2.1-alpha-4%22+AND+status+in+%28Closed%29+AND+resolution+in+%28Fixed%29+ORDER+BY+priority+DESC%2C+created+DESC
[WARNING] Unable to respond to any of these challenges: {oauth=OAuth realm="https%3A%2F%2Fjira.myjira.com%3A8443"}
[WARNING] Downloading from JIRA failed. Received: [401]
[WARNING] JIRA file /Users/jay/3.2.1-alpha/marketplace/target/jira-results.xml doesn't exist.
[WARNING]
org.apache.maven.plugin.MojoExecutionException: Couldn't find any issues for the version '3.2.1-alpha-4' among the supplied issues: []
at org.apache.maven.plugin.issues.IssueUtils.getIssuesForVersion(IssueUtils.java:119)
at org.apache.maven.plugin.jira.JiraMojo.executeReport(JiraMojo.java:387)
at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:255)
at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:210)
at org.apache.maven.plugin.changes.AbstractChangesReport.execute(AbstractChangesReport.java:207)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Environment info
JIRA Standalone 5.2.5
maven-changes-plugin v2.11
pom.xml excerpt
<issueManagement>
<system>JIRA</system>
<url>https://jira.myjira.com:8443/browse/CP</url>
</issueManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>2.11</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>announcement-generate</goal>
</goals>
<id>announcement-generate</id>
</execution>
<execution>
<phase>deploy</phase>
<goals>
<goal>announcement-mail</goal>
</goals>
<id>announcement-mail</id>
</execution>
</executions>
<configuration>
<useJql>true</useJql>
<jiraUser>xxx</jiraUser>
<jiraPassword>xxx</jiraPassword>
<webUser>xxx</webUser>
<webPassword>xxx</webPassword>
<onlyCurrentVersion>true</onlyCurrentVersion>
<smtpHost>relay.edsmtp.net</smtpHost>
<smtpPort implementation="java.lang.Integer">25</smtpPort>
<toAddresses>
<toAddress implementation="java.lang.String">[email protected]</toAddress>
</toAddresses>
<mailSender>
<name>Release Notification</name>
<email>[email protected]</email>
</mailSender>
<issueManagementSystems>
<issueManagementSystem>JIRA</issueManagementSystem>
</issueManagementSystems>
</configuration>
</plugin>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>2.11</version>
<configuration>
<useJql>true</useJql>
<jiraUser>xxx</jiraUser>
<jiraPassword>xxx</jiraPassword>
<webUser>xxx</webUser>
<webPassword>xxx</webPassword>
<onlyCurrentVersion>true</onlyCurrentVersion>
<resolutionIds>Unresolved</resolutionIds>
<statusIds>Open</statusIds>
<typeIds>Bug, New Feature, Improvement</typeIds>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>jira-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
Appreciate any pointers.
Thanks
You get that error because the first REST method it tries to access (https://myjiraserver/rest/api/2/serverInfo
) did not return HTTP 200 when trying to access the resource.
Your JIRA version should support v2 of the REST API, so you are likely getting that error because of one of the following reasons:
In the latter case, you could try pointing Maven at the non-SSL port for JIRA (if you still have that <Connector>
accessible in JIRA's conf/server.xml), or else see if you can fix it by adding the cert to the trust store used by Maven.
I think option #2 is less likely since I would expect the WebClient library to throw an exception if there were a cert validation problem, but I admit that I haven't dug into its API to figure out exactly what it does in that scenario.
105 Map<String, String> urlMap = JiraHelper.getJiraUrlAndProjectName( project.getIssueManagement().getUrl() );
106 String jiraUrl = urlMap.get( "url" );
107 jiraProject = urlMap.get( "project" );
108
109 // This classloader juggling is a workaround for a classic Maven 2 class loader management bug.
110 ClassLoader ccl = Thread.currentThread().getContextClassLoader();
111 try
112 {
113 Thread.currentThread().setContextClassLoader( WebClient.class.getClassLoader( ) );
114 WebClient client = setupWebClient( jiraUrl );
115
116 // We use version 2 of the REST API, that first appeared in JIRA 5
117 // Check if version 2 of the REST API is supported
118 // http://docs.atlassian.com/jira/REST/5.0/
119 // Note that serverInfo can always be accessed without authentication
120 client.replacePath( "/rest/api/2/serverInfo" );
121 client.accept( MediaType.APPLICATION_JSON );
122 Response siResponse = client.get();
123 if ( siResponse.getStatus() != Response.Status.OK.getStatusCode() )
124 {
125 throw new NoRest(
126 "This JIRA server does not support version 2 of the REST API, which maven-changes-plugin requires." );
127 }
128