Wie kann ich Maven dazu bringen, die Abhängigkeit von javax.comm herunterzuladen?

StackOverflow https://stackoverflow.com/questions/5310477

  •  24-10-2019
  •  | 
  •  

Frage

Ich brauche die javax.comm -Bibliothek, wenn ich mein Projekt auf unserem Hudson Build -Server mit Maven erstellt habe. In meiner Projekte POM.xml habe ich die Abhängigkeit wie diese:

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

Ich habe auch irgendwo gelesen, dass ich mit Javax Libs besseres Glück hätte, wenn ich das Repository einbeziehen würde:

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

was ich getan habe. Der Rest meiner Pom.xml ist ziemlich Standard und minimalistisch.

Wenn ich versuche, auf dem Build -Server aufzubauen, bekomme ich:

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

----------

Was mache ich falsch?

-bearbeiten-

Am Ende habe ich die Java Comm lib heruntergeladen Orakel und hatte unseren Maven -Administrator in unserem lokalen Repository installiert. Wie die Antworten unterhalb des Java Comm Lib aus den Antworten auf öffentliche Repos aufgrund von Lizenzbeschränkungen von Oracle (und der Sonne vor ihnen) hervorgehoben hat.

War es hilfreich?

Lösung

Wenn Sie einen Blick darauf werfen hier, Im "offiziellen" Maven 2 -Repository sehen Sie das in der pom.xml Datei für Ihre Bibliothek:

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

Dies bedeutet, dass Sie die Bibliothek selbst herunterladen sollten (die URL ist in angegeben <downloadUrl> Tag) und dann Installieren Sie es in Ihrem lokalen Repository (oder noch besser, bereitet es in Ihrem Enterprise -Repository ein).

Dies geschieht manchmal mit einigen Bibliotheken (der Oracle JDBC -Treiber ist ein weiteres Beispiel), die nicht zum direkten Download verfügbar sind, im Wesentlichen aufgrund spezifischer Lizenzen ...

Andere Tipps

Das Glas ist in öffentlichen Repositories nicht verfügbar, wahrscheinlich aus Lizenzgründen.

Laden Sie die herunter Kommunikations -API und bereitet es mit verwenden

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

Eigentlich findet Maven es nicht in den öffentlichen Repos ...

Info] Ressource 'javax.comm: comm: jar: 2.0.3' im repository java.net repository (http://download.java.net/maven/2) ... [info] Ressource 'javax.comm: comm: jar: 2.0.3' in repository zentral (http://repo1.maven.org/maven2)

Sie müssen es von jeder Quelle herunterladen und entweder in Ihrem lokalen Repository installieren:

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

Oder stellen Sie es in Ihrem Unternehmensrepository ein (falls Sie eine haben):

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

Aufgrund von Lizenzbeschränkungen ist das Javax.comm -Paket in öffentlichen Repositories nicht verfügbar, finden Sie hier weitere Detais:

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

Der POM bietet Ihnen auch die Download -URL. Sie sollten das Glas mit dem bereitgestellten Link herunterladen:

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

und platzieren Sie es in "/javax/comm/comm/2.0.3/"Im Repository-Server Ihres Unternehmens bieten Server wie Artefactory eine Web-Frontend dafür an.

Wenn Sie keinen Repository -Server haben, können Sie ihn in Ihr platzieren .m2/repository Verzeichnis in Ihrem Heimatordner. Ein Verzeichnis erstellen "/javax/comm/comm/2.0.3/"Dort und platzieren Sie den Pom aus dem ersten Link und dem heruntergeladenen Glas in diesem Ordner. Dies funktioniert jedoch nur für Ihre lokale Maschine.

Sie können das Artefakt auch in der Quellungssteuerung hinzufügen und das Maven-Install-Plugin verwenden, um es vor dem Build wie erläutert zu installieren hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top