2011-03-15 26 views
10

Necesito la biblioteca javax.comm al construir mi proyecto en nuestro servidor de compilación Hudson con Maven. En mis proyectos pom.xml tengo la dependencia de esta manera:¿Cómo consigo que Maven descargue la dependencia de javax.comm?

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

También he leído por ahí que iba a tener mejor suerte con javax de lib si he incluido el repositorio:

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

que hice . El resto de mi pom.xml es bastante estándar y minimalista.

Cuando trato de instalar en el servidor de compilación consigo:

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é estoy haciendo mal?

operación -Editar-

terminé de descargar el comunicador lib Java desde Oracle y tuvimos nuestro administrador Maven instalarlo en nuestro repositorio local. Como se señala en las respuestas a continuación, java comm lib no está disponible en repositorios públicos debido a restricciones de licencia de Oracle (y Sun antes que ellos).

+0

parece que el repositorio de su empresa no incluye javax.comm: comm: jar: 2.0.3, ni eso, ni puede reenviar la solicitud a alguien que sí ...? – falstro

+0

¿Por qué Maven no lo encuentra en los repositorios públicos cuando no lo encuentra en el repositorio de mi compañía? – Svante

+1

porque no está configurado para mirar allí. Esta es una configuración estándar para las empresas, para poder controlar/controlar lo que se está utilizando (los problemas de licencia son la principal causa de preocupación aquí). Debería pedirle a alguien que lo agregue al repositorio de la compañía, o probablemente tenga problemas con el departamento legal. – falstro

Respuesta

9

Si usted tiene una mirada here, en el "oficial" Maven 2 repositorio, se verá que en el archivo pom.xml para su biblioteca:

<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> 

lo que significa que usted debe descargar la biblioteca a sí mismo (el La URL se da en la etiqueta <downloadUrl>), y luego install it on your local repository (o incluso mejor, impleméntela en su repositorio empresarial).

Esto sucede a veces con algunas bibliotecas (el controlador JDBC de Oracle es otro ejemplo) que no están disponibles para su descarga directa, debido fundamentalmente a licencias específicas ...

+0

Gracias, muy buena respuesta. – Svante

+0

http://www.sun.com/download/products.xml?id=43208d3d - el enlace está muerto – 0x6B6F77616C74

3

En realidad experto no lo encuentra en los repositorios públicos ...

[INFO] No se ha podido encontrar el recurso 'javax.comm: comm: jar: 2.0.3' en el repositorio repositorio java.net (http://download.java.net/maven/2) . .. [INFO] No se puede encontrar el recurso 'javax.comm: comm: jar: 2.0.3' en el repositorio central (http://repo1.maven.org/maven2)

tienes que descargarlo desde cualquier fuente y, o bien instalarlo en su repositorio local:

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

o implementarlo en su repositorio de empresa (si lo tiene):

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

Gracias, muy buena respuesta. – Svante

1

Debido a restricciones de licencia el paquete javax.comm no está disponible en los repositorios públicos, ver aquí para más detais:

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

el P OM también te ofrece la URL de descarga.Debe descargar el frasco usando el enlace proporcionado:

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

y colocarlo en "/javax/comm/comm/2.0.3/" en sus empresas servidor de repositorio, como servidores Artifactory ofrecen una interfaz web para esto.

Si no tiene un servidor de repositorio, puede colocarlo en su directorio .m2/repository en su carpeta de inicio. Cree un directorio "/javax/comm/comm/2.0.3/" allí y coloque el pom desde el primer enlace y el jar descargado en esta carpeta. Pero esto solo funcionará para su máquina local.

+0

Gracias, muy buena respuesta. – Svante

4

El contenedor no está disponible en repositorios públicos, probablemente por razones de licencia.

Descargar el Communication API y desplegarlo utilizando

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

También puede añadir el artefacto en control de código fuente y utilizar la experta-install-plugin para instalarlo necesitas cigarros antes de la construcción como se explica here.

Cuestiones relacionadas