Question

J'ai besoin de la bibliothèque javax.comm lors de la construction de mon projet sur notre serveur de build Hudson avec Maven. Dans mes projets fichier pom.xml J'ai la dépendance comme ceci:

<dependency>
    <groupId>javax.comm</groupId>
    <artifactId>comm</artifactId>
    <version>2.0.3</version>
</dependency>

Je lis aussi quelque part que j'aurais plus de chance avec javax lib de si j'inclus le dépôt:

    <repository>
        <id>java.net repository</id>
        <url>http://download.java.net/maven/2</url>
    </repository>

que je l'ai fait. Reste de ma pom.xml est assez standard et minimalistes.

Lorsque je tente de construire sur le serveur de build je reçois:

Downloading: [company repo]/content/groups/public//javax/comm/comm/2.0.3/comm-2.0.3.jar
[INFO] Unable to find resource 'javax.comm:comm:jar:2.0.3' in repository java.net repository (http://download.java.net/maven/2)
Downloading: [company repo]/content/groups/public//javax/comm/comm/2.0.3/comm-2.0.3.jar
[INFO] Unable to find resource 'javax.comm:comm:jar:2.0.3' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) javax.comm:comm:jar:2.0.3

Try downloading the file manually from: 
  http://www.sun.com/download/products.xml?id=43208d3d

Then, install it using the command: 
  mvn install:install-file -DgroupId=javax.comm -DartifactId=comm -Dversion=2.0.3 -Dpackaging=jar -Dfile=/path/to/file

Alternatively, if you host your own repository you can deploy the file there: 
  mvn deploy:deploy-file -DgroupId=javax.comm -DartifactId=comm -Dversion=2.0.3 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

Path to dependency: 
1) com.siriusit.fisherysolution.inmcsim:InmCSim:jar:1.0-SNAPSHOT
2) javax.comm:comm:jar:2.0.3

----------

Qu'est-ce que je fais mal?

-edit -

J'ai fini de télécharger le java comm lib de Oracle et avait notre installation d'administration Maven sur notre référentiel local. Comme l'a souligné réponses ci-dessous la java comm lib n'est pas disponible sur les pensions publiques en raison des restrictions de licence d'Oracle (et Sun avant eux).

Était-ce utile?

La solution

Si vous regardez , en le dépôt Maven 2 « officiel », vous verrez que dans le fichier pom.xml pour votre bibliothèque:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>javax.comm</groupId>
    <artifactId>comm</artifactId>
    <version>2.0.3</version>
    <name>Java Communications API</name>
    <description>
        The Java Communications API is a Java extension that facilitates developing platform-independent
        communications applications for technologies such as Smart Cards, embedded systems, and point-of-sale
        devices, financial services devices, fax, modems, display terminals, and robotic equipment.
    </description>
    <url>http://java.sun.com/products/javacomm/</url>
    <distributionManagement>
        <downloadUrl>http://www.sun.com/download/products.xml?id=43208d3d</downloadUrl>
    </distributionManagement>
    <dependencies></dependencies>
</project>

ce qui signifie que vous devez télécharger la bibliothèque vous (l'URL est donnée dans la balise <downloadUrl>), puis sur l'installer sur votre dépôt local (ou mieux encore, déployer sur votre référentiel d'entreprise).

Cela arrive parfois avec certaines bibliothèques (le pilote JDBC Oracle est un autre exemple) qui ne sont pas disponibles pour téléchargement direct, essentiellement en raison des licences spécifiques ...

Autres conseils

Le pot n'est pas disponible dans les dépôts publics, probablement pour des raisons de licence.

Télécharger l'API Communication et le déployer en utilisant

mvn deploy:deploy-file -DgroupId=javax.comm -DartifactId=comm \
   -Dversion=2.0.3  -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] \
   -DrepositoryId=[id]

En fait, ne maven trouve pas sur les prises en pension publiques ...

[INFO] Impossible de trouver la ressource 'javax.comm: comm: jar: 2.0.3' dans le référentiel référentiel java.net (http://download.java.net/maven/2) ... [INFO] Impossible de trouver la ressource 'javax.comm: comm: jar: 2.0.3' dans le dépôt central (http://repo1.maven.org/maven2)

vous devez le télécharger à partir d'une source et installer soit dans votre dépôt local:

mvn install:install-file -DgroupId=javax.comm -DartifactId=comm -Dversion=2.0.3 -Dpackaging=jar -Dfile=/path/to/file

ou le déployer sur votre référentiel d'entreprise (si vous en avez un):

mvn deploy:deploy-file -DgroupId=javax.comm -DartifactId=comm -Dversion=2.0.3 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]    

En raison de restrictions de licences le paquet javax.comm ne sont pas disponibles dans tous les dépôts publics, voir ici pour plus detais:

http: // repo1. maven.org/maven2/javax/comm/comm/2.0.3/comm-2.0.3.pom

Le POM vous propose également le téléchargement URL. Vous devez télécharger le pot en utilisant le lien fourni:

http://www.sun.com/download/products.xml? id = 43208d3d

et placez-le dans « /javax/comm/comm/2.0.3/ » dans vos entreprises serveur de référentiel, serveurs comme offre Artifactory une interface web pour cela.

Si vous ne disposez pas d'un serveur de référentiel vous pouvez le placer dans votre répertoire .m2/repository dans votre dossier personnel. Créez un répertoire « /javax/comm/comm/2.0.3/ » là-bas et placer le pom de la première liaison et le pot téléchargé dans ce dossier. Mais cela ne fonctionnera que pour votre machine locale.

Vous pouvez également ajouter l'artefact dans le contrôle de la source et utiliser le maven-plugin-install pour l'installer avant la construction localy comme expliqué .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top