[JAVA] Libération: effectuer le déploiement donne le code d'erreur 400

Détails de l'erreur

Lors du déploiement de la version Release de jar sur Nexus avec maven-release-plugin Le travail a échoué avec l'erreur suivante.

[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] BUILD FAILURE
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 10.235 s
[INFO] [INFO] Finished at: 2017-11-01T18:38:53+09:00
[INFO] [INFO] Final Memory: 32M/578M
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8:deploy
 (default-deploy) on project test-lib: Failed to deploy artifacts: Could not transfer artifact
 com.sample:test-lib:jar:sources:1.0.0 from/to nexus-releases ([NexusURL]/releases): 
Failed to transfer file: [NexusURL]/releases/com/sample/test-lib/1.0.0/test-lib-1.0.0-sources.jar.
 Return code is: 400, ReasonPhrase: Bad Request. -> [Help 1]

Il semble que le déploiement de sources.jar ait échoué, mais lorsque je vérifie Nexus, il a déjà été téléchargé. .. .. En regardant le journal, il semble que ** source.jar a été déployé deux fois **. Lorsque j'ai arrêté de créer source.jar en tant qu'essai, le même phénomène s'est produit dans ** javadoc.jar **.

[INFO] [INFO] --- maven-deploy-plugin:2.8:deploy (default-deploy) @ test-lib ---
/* jar,Déploiement de Pom omis*/
[INFO] Uploading: [NexusURL]/releases/com/sample/test-lib/1.0.0/test-lib-1.0.0-sources.jar
[INFO] Uploaded: [NexusURL]/releases/com/sample/test-lib/1.0.0/test-lib-1.0.0-sources.jar 
[INFO] Uploading: [NexusURL]/releases/com/sample/test-lib/1.0.0/test-lib-1.0.0-javadoc.jar
[INFO] Uploaded: [NexusURL]/releases/com/sample/test-lib/1.0.0/test-lib-1.0.0-javadoc.jar
/*Source à nouveau.Déploiement du pot*/ 
[INFO] Uploading: [NexusURL]/releases/com/sample/test-lib/1.0.0/test-lib-1.0.0-sources.jar
///Une erreur s'est produite ici

Cause d'erreur

Comme un insecte maven. En novembre 2017, il n'était pas encore fermé. https://issues.apache.org/jira/browse/MNG-5868 https://issues.apache.org/jira/browse/MNG-5939

Si vous exécutez mvn -Prelease-profile help: effective-pom et voyez le pom qui fonctionne réellement, l'exécution est double définie comme indiqué ci-dessous. (Dans mon pom, seule la définition supérieure a été décrite)

   <plugin>
      <artifactId>maven-source-plugin</artifactId>
      <version>3.0.1</version>
      <executions>
        <execution>
          <phase>install</phase>
          <goals>
            <goal>jar</goal>
          </goals>
        </execution>
        <execution>
          <id>attach-sources</id>
          <goals>
            <goal>jar</goal>
          </goals>
        </execution>
      </executions>
    </plugin>

Contre-mesures

  1. Modifiez maven-source-plugin et maven-javadoc-plugin
  2. Réduisez la version de maven à 3.2.1

Mesure 1

Comme ci-dessus, exécutez mvn -Prelease-profile help: effective-pom pour trouver l'exécution que vous n'avez pas spécifiée. Ajoutez ensuite l'identifiant qui y est répertorié à pom. (Dans mon cas, l'id de source-plugin était attach-sources et l'id de javadoc-plugin était attach-javadocs)

pom.xml


<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-source-plugin</artifactId>
	<version>3.0.1</version>
	<executions>
		<execution>
			<id>attach-sources</id>
			<phase>install</phase>
			<goals>
				<goal>jar</goal>
			</goals>
		</execution>
	</executions>
</plugin>
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-javadoc-plugin</artifactId>
	<version>2.10.4</version>
	<executions>
		<execution>
			<id>attach-javadocs</id>
			<phase>install</phase>
			<goals>
				<goal>jar</goal>
			</goals>
		</execution>
	</executions>
</plugin>

résultat

La version Release a été publiée avec succès en utilisant la méthode de Countermeasure 1.

Recommended Posts

Libération: effectuer le déploiement donne le code d'erreur 400
Erreur lors du déploiement d'EC2
Erreur rencontrée avec les notes lors du déploiement de docker sur des rails
Erreur lors de la lecture avec java
Erreur de base de données concernant le déploiement à l'aide d'Heroku
Erreur lors de la création de l'infrastructure avec l'application AWS
[Rails] Résolution d'erreur lors de la génération de jetons avec PAYJP
Erreur lors du déploiement de rails5 + Mysql sur heroku avec Docker-compose
Erreur lors de l'installation de pygame (la commande "python setup.py egg_info" a échoué avec le code d'erreur 1 dans / tmp / pip-build-yovQQX / pygame /)
Solution de contournement pour l'erreur Bundler.require lors de l'exécution de ruby avec crontab
Quand je bcrypt avec node + docker, j'ai une erreur