Maven récalcitrant
Le
ToOmS

Bonjour à tous,
Maven (integration for Eclpise) m'envoie depuis qq jours l'erreur de
build suivante sur deux de mes projets :
The container 'Maven Dependencies' references non existing library '/
home/tooms/.m2/repository/javax/security/jacc/1.0/jacc-1.0.jar'
Voici la liste de mes dépendances :
PROJET A
<dependency>
<groupId>jgraph</groupId>
<artifactId>jgraph</artifactId>
<version>5.8.3.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.6</version>
</dependency>
<dependency>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
<!-- exécution de fichiers de script SQL -->
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6.5</version>
</dependency>
PROJET B
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.6</version>
</dependency>
<dependency>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
<!-- exécution de fichiers de script SQL -->
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6.5</version>
</dependency>
<!-- plugin jaxb ci-dessous -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.0.3</version>
</dependency>
Est-ce que quelqu'un sait ce qu'il se passe ? Tout allait bien sur le
projet B jsuqu'à ce que je récupère une partie des dépendances pour=
le
Projet A.
Merci d'avance, ToOmS
Maven (integration for Eclpise) m'envoie depuis qq jours l'erreur de
build suivante sur deux de mes projets :
The container 'Maven Dependencies' references non existing library '/
home/tooms/.m2/repository/javax/security/jacc/1.0/jacc-1.0.jar'
Voici la liste de mes dépendances :
PROJET A
<dependency>
<groupId>jgraph</groupId>
<artifactId>jgraph</artifactId>
<version>5.8.3.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.6</version>
</dependency>
<dependency>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
<!-- exécution de fichiers de script SQL -->
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6.5</version>
</dependency>
PROJET B
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.6</version>
</dependency>
<dependency>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
<!-- exécution de fichiers de script SQL -->
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6.5</version>
</dependency>
<!-- plugin jaxb ci-dessous -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.0.3</version>
</dependency>
Est-ce que quelqu'un sait ce qu'il se passe ? Tout allait bien sur le
projet B jsuqu'à ce que je récupère une partie des dépendances pour=
le
Projet A.
Merci d'avance, ToOmS
J'oubliais de préciser que lrosque je tente d'intégerer la dépendance
de jacc (javax.security), elle apparaît en rouge et le bouton OK
invalidé.
Il s'agit d'un problème courant qui vient du fait que certaines
librairies (par exemple certaines librairies de Sun) ont une licence
qui ne permet pas leur distribution par le biais du repository central
de maven. Tu trouveras quand meme le pom de ces librairies, mais pour
les télécharger tu dois ajouter le bon repository au pom de ton
projet. Lis ceci:
http://maven.apache.org/guides/mini/guide-coping-with-sun-jars.html
D'autre part j'attire ton attention sur le fait que tes poms projets
déclarent des dépendances qui sont déjà déduites par maven (jaxb- impl -
Et enfin tu n'as pas déclaré junit dans le scope test, est-ce normal ?
Jocelyn LECOMTE
mauvaise habitude de ne pas les utiliser dans les petits projets.
Sinon, j'ai regardé la page que tu m'as indiquée, et j'ai ajouté le
repository à mon pom.xml. Sans succès.
Comme les dépendances données dans le tableau ne correspondent pas à
celles que j'utilise, je ne suis pas sûr d'être allé au bout de
l'exercice. Estce que je dois faire une installation manuelle de
dépendances particulières en plus ? Lesquelles sont "pour moi" ??
Merci d'avance, si tu as pu comprendre mes questions et veux bien me
donner ton avis.
Je ne suis pas sur de comprendre là, ce n'est pas la dépendence vers
Java Authorization Contract for Containers qui te manquait ? Parce
qu'elle figure bien dans le tableau...
Sinon précise de quelle librairie tu veux parler, et si c'est bien
celle-ci, vérifie si par hasard tu ne la récupères pas de manière
transitive par les dépendances d'hibernate.
Jocelyn LECOMTE
Si, pardon, c'est bien celle-là et je me suis emmélé les pinceaux
parce que tu m'as fais remarquer (à juste titre) que cette dépendance
n'avait pas à figurer explicitement dans la configuration.
Pour résumer, c'est hbn qui pose pb :
<dependency>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
</dependency>
Comme je n'en ai pas encore besoin à ce stade du développement, je
l'ai retiré et mis commons-logging qui était inclus dedans :
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
Mais quand je vais avoir besoin de hibernate, ça va sans doute
repartir pour un tour...
suivantes :
<dependency>
<artifactId>persistence-api</artifactId>
</dependency>
<dependency>
<artifactId>hibernate</artifactId>
<exclusions>
<exclusion>
<artifactId>jta</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
</dependency>
moralité : ne pas se fier au plugin sous Eclipse si on ne sait pas ce
que l'on importe EXACTEMENT...