[JAVA] Une note de service lors de l'exécution d'Apache Maven sur un proxy interne

J'ai eu du mal à exécuter Apache Maven (ci-après Maven) dans un environnement avec un proxy interne, je voudrais donc résumer la méthode de paramétrage du proxy sous forme de mémorandum.

Qu'est-ce qu'Apache Maven?

C'est un outil de construction qui gère les bibliothèques en Java, construit des projets, exécute des tests, déploie, etc. Je comprends que c'est équivalent à GNU Make en langage C.

Environnement de vérification

Ubuntu 16.04.5 LTS

Installer Apache Maven

Installez Maven. Cette vérification est effectuée sur Ubuntu.


sudo apt install -y maven
Vérifiez si l'installation est terminée avec succès

$ mvn -v
Apache Maven 3.3.9
Maven home: /usr/share/maven
Java version: 9-internal, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-9-openjdk-amd64
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-137-generic", arch: "amd64", family: "unix"

Paramètres du proxy

Modifiez / etc / maven / settings.xml``` si le mur Proxy interne est debout

sudo vim /etc/maven/settings.xml
Exemple de description (extrait des parties nécessaires)

<!-- proxies
 | This is a list of proxies which can be used on this machine to connect to the network.
 | Unless otherwise specified (by system property or command-line switch), the first proxy | specification in this list marked as active will be used.
 |-->
<proxies>
  <!-- proxy
   | Specification for one proxy, to be used in connecting to the network.
   |-->
  <proxy>
    <id>http_proxy</id>
    <active>true</active>
    <protocol>http</protocol>
    <username>USER_NAME</username>
    <password>PASSWD</password>
    <host>HOST</host>
    <port>PORT</port>
    <nonProxyHosts>NON_PROXY</nonProxyHosts>
  </proxy>
  <proxy>
    <id>https_proxy</id>
    <active>true</active>
    <protocol>https</protocol>
    <username>USER_NAME</username>
    <password>PASSWD</password>
    <host>HOST</host>
    <port>PORT</port>
    <nonProxyHosts>NON_PROXY</nonProxyHosts>
  </proxy>
</proxies>

Contrôle de fonctionnement

Créez un projet de test pour vérifier le fonctionnement du Maven installé. Si les paramètres du proxy ne sont pas définis correctement, une erreur d'exécution se produit et un grand nombre d'erreur s'affiche.

Créer un projet de test

Créez un projet Maven pour la vérification des opérations. Nommez-le «test-app».

mvn archetype:generate
Exemple de création

Choose archetype:
1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.)
2: internal -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.)
3: internal -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.)
4: internal -> org.apache.maven.archetypes:maven-archetype-plugin-site (An archetype which contains a sample Maven plugin site.
      This archetype can be layered upon an existing Maven plugin project.)
5: internal -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.)
6: internal -> org.apache.maven.archetypes:maven-archetype-profiles ()
7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
8: internal -> org.apache.maven.archetypes:maven-archetype-site (An archetype which contains a sample Maven site which demonstrates
      some of the supported document types like APT, XDoc, and FML and demonstrates how
      to i18n your site. This archetype can be layered upon an existing Maven project.)
9: internal -> org.apache.maven.archetypes:maven-archetype-site-simple (An archetype which contains a sample Maven site.)
10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7:[Entrer par défaut]
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.1/maven-archetype-quickstart-1.1.pom
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.1/maven-archetype-quickstart-1.1.pom (2 KB at 2.4 
KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-bundles/4/maven-archetype-bundles-4.pom
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-bundles/4/maven-archetype-bundles-4.pom (4 KB at 4.1 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetype/maven-archetype/2.0-alpha-5/maven-archetype-2.0-alpha-5.pom
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetype/maven-archetype/2.0-alpha-5/maven-archetype-2.0-alpha-5.pom (9 KB at 32.5 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16.pom
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16.pom (23 KB at 45.1 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.1/maven-archetype-quickstart-1.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.1/maven-archetype-quickstart-1.1.jar (7 KB at 23.9 KB/sec)
Define value for property 'groupId': com.test
Define value for property 'artifactId': test-app
Define value for property 'version' 1.0-SNAPSHOT: :[Entrer par défaut]
Define value for property 'package' com.test: :[Entrer par défaut]
Confirm properties configuration:
groupId: com.test
artifactId: test-app
version: 1.0-SNAPSHOT
package: com.test
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /home/user
[INFO] Parameter: package, Value: com.test
[INFO] Parameter: groupId, Value: com.test
[INFO] Parameter: artifactId, Value: test-app
[INFO] Parameter: packageName, Value: com.test
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /home/user/test-app
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:15 min
[INFO] Finished at: 2020-03-19T09:24:46+09:00
[INFO] Final Memory: 19M/64M
[INFO] ------------------------------------------------------------------------

Référence: Que faire si vous ne pouvez pas télécharger à partir d'un serveur de référentiel Maven externe lors de l'exécution de Maven en interne

Résumé

L'OSS que je voulais essayer a été implémenté en Java et a été distribué dans l'état du projet Maven, j'ai donc installé Maven, mais comme prévu, il a été bloqué par le proxy interne et la construction n'est pas restée au début. Étant donné que les paramètres liés à Proxy diffèrent selon l'application, j'ai pensé qu'il était nécessaire de conserver un mémo dès qu'il était résolu.

Reference [Introduction aux outils de construction Java Compatible Maven / Gradle / SBT / Bazel (écrit par Tsuyano Palma; Hidekazu System; 2017)](https://www.amazon.co.jp/Java80-Maven-Gradle-SBT-Bazel9C- ebook / dp / B079Z1PG6C / ref = tmm_kin_swatch_0? _ Encoding = UTF8 & qid = 1567397583 & sr = 8-1) https://www.codeflow.site/ja/article/maven__how-to-install-maven-in-ubuntu

Recommended Posts

Une note de service lors de l'exécution d'Apache Maven sur un proxy interne
Créez un référentiel interne Maven sur Google Cloud Storage
Lorsque Maven est bloqué par un proxy d'entreprise et ne fonctionne pas
[Rejeté] Un mémorandum car une erreur s'est produite lors du déploiement dans Heroku
Faites en sorte qu'Apache et Tomcat travaillent ensemble en un clin d'œil sur CentOS 8
[Opération non autorisée] Un mémorandum car une erreur s'est produite lors de la création d'une instance EC2.
Un mémorandum lorsque IME ne peut pas être activé avec VS Code (Ubuntu 20.04)
Un mémorandum sur l'utilisation d'Eclipse
Créer un référentiel Maven sur AWS S3
Chemin relatif lors de l'exécution de Tomcat sur Eclipse
Un rappel lorsqu'une erreur aapt.exe se produit