¿Cómo hago que Maven descargue la dependencia de Javax.Comm?
-
24-10-2019 - |
Pregunta
Necesito la biblioteca Javax.Comm al construir mi proyecto en nuestro servidor de compilación Hudson con Maven. En mis proyectos, el archivo pom.xml tengo la dependencia como esta:
<dependency>
<groupId>javax.comm</groupId>
<artifactId>comm</artifactId>
<version>2.0.3</version>
</dependency>
También leí en alguna parte que tendría mejor suerte con Javax Lib si incluía el repositorio:
<repository>
<id>java.net repository</id>
<url>http://download.java.net/maven/2</url>
</repository>
lo cual hice. El resto de mi pom.xml es bastante estándar y minimalista.
Cuando intento construir en el servidor de compilación, obtengo:
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?
-editar-
Terminé descargando el Java Comm Lib de Oráculo y hizo que nuestro administrador de Maven lo instalara en nuestro repositorio local. Como se señaló con las respuestas debajo de Java Comm Lib, no está disponible en reposuras públicas debido a restricciones de licencia de Oracle (y Sun antes que ellos).
Solución
Si tienes un vistazo aquí, en el repositorio "oficial" de Maven 2, lo verá en el pom.xml
Archivo 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 debe descargar la biblioteca usted mismo (la URL se da en <downloadUrl>
etiqueta), y luego Instálelo en su repositorio local (o incluso mejor, impleméntelo en su repositorio empresarial).
Esto sucede a veces con algunas bibliotecas (el controlador Oracle JDBC es otro ejemplo) que no está disponible para descarga directa, esencialmente debido a licencias específicas ...
Otros consejos
El JAR no está disponible en repositorios públicos, probablemente por razones de licencia.
Descargar el API de comunicación e implementarlo usando
mvn deploy:deploy-file -DgroupId=javax.comm -DartifactId=comm \
-Dversion=2.0.3 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] \
-DrepositoryId=[id]
En realidad, Maven no lo encuentra en los reposos públicos ...
Info] No se puede encontrar el recurso 'javax.comm: com: jar: 2.0.3' en repositorio java.net repositorio (http://download.java.net/maven/2) ... [info] inapropilado para encontrar Resource 'Javax.comm: Comm: Jar: 2.0.3' en Repositorio Central (http://repo1.maven.org/maven2)
Debe descargarlo de cualquier fuente e 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 el repositorio de su empresa (si tiene uno):
mvn deploy:deploy-file -DgroupId=javax.comm -DartifactId=comm -Dversion=2.0.3 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
Debido a las restricciones de licencia, el paquete Javax.Comm no está disponible en ningún repositorio público, consulte aquí para obtener más detención:
http://repo1.maven.org/maven2/javax/comm/comm/2.0.3/comm-2.0.3.pom
El POM también le ofrece la URL de descarga. Debe descargar el jar usando el enlace proporcionado:
http://www.sun.com/download/products.xml?id=43208d3d
y colóquelo en "/javax/comm/comm/2.0.3/
"En el servidor de repositorio de sus empresas, los servidores como Artifactory ofrecen un frontend de web para esto.
Si no tiene un servidor de repositorio, puede colocarlo en su .m2/repository
directorio en su carpeta de inicio. Crear un directorio "/javax/comm/comm/2.0.3/
"Allí y coloque el POM desde el primer enlace y el frasco descargado en esta carpeta. Pero esto solo funcionará para su máquina local.
También puede agregar el artefacto en el control de origen y usar el Maven-Install-Plugin para instalarlo localy antes de la compilación como se explicó aquí.