IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Convert to Maven Project produit un pom.xml en erreur


Sujet :

Maven Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut Convert to Maven Project produit un pom.xml en erreur
    Bonjour,

    J'ai installé le plugin Android for Maven Eclipse "m2e-android" et j'ai tenté plusieurs fois de convertir un projet Android (Mon projet fonctionne sans le convertir) déjà existant sans succès.

    Pour ce faire, je clique droit sur le projet dans la fenêtre "package explorer" d'eclipse puis je sélectionne "convert to Maven Project".

    Un fichier pom.xml est alors créé mais ce dernier est directement en erreur alors que l'on pourrait s'attendre que, suite à la conversion, il n'y ait pas d'erreur. Et je ne comprends donc pas d'où ce problème peut provenir surtout que sur internet, je ne trouve aucun signalement de cette erreur.

    Donc voici les différents fichiers de mon projet :

    main.xml
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="utf-8"?>
    <TableLayout android:id="@+id/Table"
            android:layout_width="fill_parent"
    		android:layout_height="fill_parent"
            android:stretchColumns="0,1,2,3,4"
            xmlns:android="http://schemas.android.com/apk/res/android">
    <TableRow android:layout_width="fill_parent"
                    android:layout_height="wrap_content">
    <Button android:id="@+id/ButtonRed" android:text="@string/ButtonRed" />
    <Button android:id="@+id/ButtonGreen" android:text="@string/ButtonGreen" />
    <Button android:id="@+id/ButtonBlue" android:text="@string/ButtonBlue" />
    <Button android:id="@+id/ButtonBlack" android:text="@string/ButtonBlack" />
    <Button android:id="@+id/ButtonWhite" android:text="@string/ButtonWhite" />
    </TableRow>
    </TableLayout>

    strings.xml
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">HelloFlashlight</string>
        <string id="ButtonRed" name="ButtonRed">Red</string>
    	<string id="ButtonBlue" name="ButtonBlue">Blue</string>
    	<string id="ButtonGreen" name="ButtonGreen">Green</string>
    	<string id="ButtongBlack" name="ButtonBlack">Black</string>
    	<string id="ButtonWhite" name="ButtonWhite">White</string>
    </resources>

    HelloFlashlight.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    package com.simpligility.android.helloflashlight;
     
    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TableLayout;
     
    /**
     * HelloFlashlight is a sample application for the usage of the Maven Android Plugin.
     * The code is trivial and not the focus of this example and therefore not really documented.
     *
     * @author Manfred Moser <manfred@simpligility.com>
     */
    public class HelloFlashlight extends Activity {
     
    	TableLayout table;
    	Button redButton;
    	Button greenButton;
    	Button blueButton;
    	Button blackButton;
    	Button whiteButton;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            // get all the view components
            table = (TableLayout) findViewById(R.id.Table);
            redButton = (Button) findViewById(R.id.ButtonRed);
            greenButton = (Button) findViewById(R.id.ButtonGreen);
            blueButton = (Button) findViewById(R.id.ButtonBlue);
            blackButton = (Button) findViewById(R.id.ButtonBlack);
            whiteButton = (Button) findViewById(R.id.ButtonWhite);
     
            // default the full screen to white
            table.setBackgroundColor(Color.WHITE);
     
            // hook up all the buttons with a table color change on click listener
            redButton.setOnClickListener(OnClickChangeColor(Color.RED));
            greenButton.setOnClickListener(OnClickChangeColor(Color.GREEN));
            blueButton.setOnClickListener(OnClickChangeColor(Color.BLUE));
            blackButton.setOnClickListener(OnClickChangeColor(Color.BLACK));
            whiteButton.setOnClickListener(OnClickChangeColor(Color.WHITE));
        }
     
        /**
         * An OnClickListener that changes the color of the table.
         * @param color
         * @return
         */
        View.OnClickListener OnClickChangeColor(final int color)
        {
            return new View.OnClickListener() {
                public void onClick(View view) {
                    table.setBackgroundColor(color);
                }
            };
        }
    }
    AndroidManifest.xml
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.simpligility.android.helloflashlight"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".HelloFlashlight"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
        <uses-sdk android:minSdkVersion="4" />
    </manifest>

    pom.xml (généré par "convert to Maven Project") :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?xml version="1.0" encoding="UTF-8"?>
    <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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
     
      <groupId>com.simpligility.android</groupId>
      <artifactId>helloflashlight</artifactId>
      <version>1.0.0</version>
      <packaging>apk</packaging>
     
      <name>HelloFlashlight</name>
     
      <dependencies>
        <dependency>
          <groupId>com.google.android</groupId>
          <artifactId>android</artifactId>
          <version>4.1.1.4</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
     
      <build>
        <sourceDirectory>src</sourceDirectory>
        <finalName>${project.artifactId}</finalName>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>com.jayway.maven.plugins.android.generation2</groupId>
              <artifactId>android-maven-plugin</artifactId>
              <version>3.8.2</version>
              <extensions>true</extensions>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <configuration>
              <sdk>
                            <!-- platform as api level (api level 16 = platform 4.1)-->
                <platform>16</platform>
              </sdk>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </project>

    et voici le texte de l'erreur que j'obtient dans eclipse à la ligne 35 <plugin> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Multiple annotations found at this line:
    	- Plugin execution not covered by lifecycle configuration: 
    	 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.2:proguard (execution: 
    	 default-proguard, phase: process-classes)
    	- Plugin execution not covered by lifecycle configuration: 
    	 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.2:generate-sources 
    	 (execution: default-generate-sources, phase: generate-sources)
    	- Plugin execution not covered by lifecycle configuration: 
    	 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.2:consume-aar (execution: 
    	 default-consume-aar, phase: compile)
    Si quelqu'un veut bien m'apporter son aide, je vous en remercie !
    OS : LinuxMint 20

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Bonjour à tous !

    Bon, j'ai résolu une partie de mon problème hier soir mais je n'ai pas pu continuer car il était presque minuit et mes convives me mettaient la pression pour que je lâche l'ordi pour aller souhaiter la bonne nouvelle année ...
    Et en plus comme j'étais un peu alcoholisé, je ne me rapelle plus exactement ce que j'ai fait ... mais je vais tenter ici de livrer la solution :

    Donc en fait j'ai cliqué dans eclipse sur Help/install new software et j'ai installé pleins de trucs (je ne me rapelle plus qu'est-ce que j'ai installé mais c'était en relation avec les messages d'erreur puisque j'ai copié le mesage d'erreur dans Google).

    Du coup le message d'erreur a été réduit et il ne me reste plus que ce message d'erreur sur la balise <plugin> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Plugin execution not covered by lifecycle configuration: 
     com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.1:consume-aar (execution: 
     default-consume-aar, phase: compile)

    Pour l'instant, je me suis rendu compte que si je remplace ceci :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>android-maven-plugin</artifactId>
                    <extensions>true</extensions>
                </plugin>

    par ceci :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>maven-android-plugin</artifactId>
                    <version>3.8.1</version>
                    <extensions>true</extensions>
                </plugin>

    l'erreur sur la balise <plugin> disparaît mais je me retrouve avec ce message d'erreur sur la déclaration xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Project build error: Unresolveable build extension: Plugin 
     com.jayway.maven.plugins.android.generation2:maven-android-plugin:3.8.1 or one of its dependencies could 
     not be resolved: Could not find artifact com.jayway.maven.plugins.android.generation2:maven-android-
     plugin:jar:3.8.1 in central (http://repo.maven.apache.org/maven2)
    et ce message sur le packaging APK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Project build error: Unknown packaging: apk

    ......
    OS : LinuxMint 20

  3. #3
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Les versions dispos pour maven-android-plugin
    Les version dispos pour android-maven-plugin

    Il semble que le plugin en question ait changé de nom...

    Pour android-maven-plugin, sur mavencentral, tu as la version 4.0.0-rc.2 avec le groupid com.jayway.maven.plugins.android.generation2

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <dependency>
        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
        <artifactId>android-maven-plugin</artifactId>
        <version>4.0.0-rc.2</version>
    </dependency>


    Tu noteras que android-maven-plugin semble maintenu par plusieurs groupes ! Assures-toi de prendre le bon plugin...

    Plugin execution not covered by lifecycle configuration est une erreur du plugin maven pour eclipse M2E : celà t'indique que le plugin n'est pas pris en charge par M2E (connecteur non dispo). Il y a des soluces mais tout dépend de ta version de M2E... c.f. ce doc

    a+
    Philippe

    P.I. : un connecteur existe... http://rgladwell.github.io/m2e-android/ donc tu dois pouvoir résoudre l'erreur M2E en installant cet additif .

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Bonjour et merci pour votre réponse,

    Une chose que je ne comprends pas à votre réponse c'est que moi j'ai un problème dans le plugin et vous me donnez dans votre réponse la balise <dependency> !?!

    Donc :
    • ne dois-je prendre de votre réponse que les balises <groupId>, <artifactId> et <version> pour les intégrer en remplaçant les mêmes dans ma balise <plugin> ?
    • ou bien dois-je ajouter le <dependency> et son corps dans les <dependencies> tout en gardant ma balise <plugin> dans les <plugins> ?


    bien sûr, je vais tenter les deux mais une petite explication de votre part m'aiderai à mieux cerner le problème.

    Merci beaucoup !
    OS : LinuxMint 20

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    re !

    Je viens d'essayer donc les deux éléments que j'ai énuméré dans mon précédent post.

    Il ne fallait prendre que les balises <groupId>, <artifactId> et <version> pour les intégrer en remplaçant les mêmes dans ma balise <plugin>.
    J'ai cependant eu l'avertissement suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Overriding managed version 3.8.2 for android-maven-plugin
    Et en réfléchissant un peu, j'ai décidé de remplacer dans la ligne suivante la version donnée en réponse par Philippe Bastiani :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <version>3.8.2</version>

    ce qui me donne le pom.xml suivant sans erreurs ni avertissements :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?xml version="1.0" encoding="UTF-8"?>
    <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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
     
      <groupId>com.simpligility.android</groupId>
      <artifactId>helloflashlight</artifactId>
      <version>1.0.0</version>
      <packaging>apk</packaging>
     
      <name>HelloFlashlight</name>
     
      <dependencies>
        <dependency>
          <groupId>com.google.android</groupId>
          <artifactId>android</artifactId>
          <version>4.1.1.4</version>
          <scope>provided</scope>
        </dependency>
     
      </dependencies>
     
      <build>
        <sourceDirectory>src</sourceDirectory>
        <finalName>${project.artifactId}</finalName>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>com.jayway.maven.plugins.android.generation2</groupId>
              <artifactId>android-maven-plugin</artifactId>
        	<version>4.0.0-rc.2</version>
              <extensions>true</extensions>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
        <artifactId>android-maven-plugin</artifactId>
            <configuration>
              <sdk>
                            <!-- platform as api level (api level 16 = platform 4.1)-->
                <platform>16</platform>
              </sdk>
            </configuration>
          </plugin>
        </plugins>
      </build>
     
    </project>

    Merci,
    OS : LinuxMint 20

  6. #6
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Oui je t'ai donné la référence du jar sur mavencentral...

    P.I. : pour eviter de remplir ton pom à la main M2E te propose des outils.
    - par exemple ctrl-<SPACE> sur tes balises
    - ou encore les menus 'Maven/add dependency' et 'Maven/add plugin' (avec les preferences maven adequates 'download xxx')

    a+
    Philippe

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Merci bien !
    OS : LinuxMint 20

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/10/2020, 22h56
  2. Réponses: 2
    Dernier message: 08/05/2012, 13h37
  3. Probleme maven pom.xml Spring Hibernate
    Par shenzy dans le forum Spring
    Réponses: 1
    Dernier message: 17/01/2011, 09h55
  4. débutant, problème maven et pom.xml
    Par mld_webcom2d dans le forum Maven
    Réponses: 6
    Dernier message: 10/10/2010, 19h55
  5. [Maven 2] Description dans pom.xml
    Par hugo123 dans le forum Maven
    Réponses: 2
    Dernier message: 23/08/2006, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo