Connecteurs m2e

Comme présenté dans un article précédent, m2e a intégré la plateforme eclipse dans le cadre d’Indigo.

Malheureusement, la migration n’est pas complètement transparente. En effet, afin d’améliorer les performances et éviter de déclencher des plugins maven à tout va, la gestion du cycle de vie a été durcie. Il faut maintenant déclarer les plugins auprès de m2e.
En basculant de version, vous risquez donc de rencontrer une erreur “plugin execution not covered”.

Pour cela, vous avez 2 possibilités :

  • déclarer le plugin en question dans votre pom, via un bloc de configuration du plugin org.eclipse.m2e/lifecycle-mapping. Une manière simple de générer ce bloc consiste à ignorer le plugin via l’aide contextuelle de m2e, puis de modifier bloc de pom en remplaçant la balise ignore par une balise execute.
  • installer un connecteur pour votre plugin (au sens maven), qui se présente sous la forme d’un plugin (au sens eclipse).

L’inconvénient de la première méthode, en tout cas l’heure actuelle, est que le plugin est bien déclenché, mais que m2e ne tient pas compte du résultat. Par exemple, si votre plugin génère un répertoire de source supplémentaire, celui-ci sera bien généré, mais la configuration eclipse ne sera pas modifiée en fonction.

L’inconvénient de la seconde est que la bibliothèque officielle de connecteurs est encore réduite et la fondation eclipse fait appel aux bonnes volontés pour l’enrichir.

Dans mon cas, je me suis retrouvé bloqué du fait de l’absence de support officiel pour la generation de code par APT pour Querydsl et Hibernate Criteria.
Qu’à cela ne tienne, la documentation existante présente un exemple d’intégration de ANTLR (donc exactement la même problématique) et il existe également une intégration non officielle de JAXB.

Voici donc un connecteur pour Querydsl et un pour Hibernate Criteria.
Ils s’installent comme n’importe quel plugin via l’update-site suivant:
https://github.com/excilys/m2e-extras/raw/master/p2

Le code est évidemment disponible dans le GitHub d’Excilys.

VN:R_U [1.9.22_1171]
Rating: 0 (from 0 votes)
Share
Ce contenu a été publié dans Maven, Outils, avec comme mot(s)-clef(s) , , . Vous pouvez le mettre en favoris avec ce permalien.

2 réponses à Connecteurs m2e

  1. agoulamhoussen@excilys.com dit :

    Concernant la première méthode, il est possible de compléter le travail du plugin maven m2e par le plugin build-helper-maven-plugin de Codehaus, qui permet notamment d’ajouter un répertoire de sources supplémentaire :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
            <execution>
                <id>add-domain-generated-sources</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>add-source</goal>
                </goals>
                <configuration>
                    <sources>
                        <source>target/generated-sources/apt-querydsl</source>
                    </sources>
                </configuration>
            </execution>
        </executions>
    </plugin>

    L’exemple ci-dessus rajoutera en répertoire de source le dossier target/generated-sources/apt-querydsl, ce qui permet de faire fonctionner le projet sous eclipse sans aucun plugin supplémentaire.

    VN:R_U [1.9.22_1171]
    Rating: 0 (from 0 votes)
  2. La démarche ci-dessus ne fonctionne pas car eclipse rentre dans une boucle infinie.
    Pour info, mon code est en train d’être intégré dans un connecteur m2e-apt développé par JBoss.

    VN:R_U [1.9.22_1171]
    Rating: 0 (from 0 votes)

Laisser un commentaire