如何让Maven下载javax.comm依赖项?

如何让Maven下载javax.comm依赖项?,maven,javax.comm,Maven,Javax.comm,在使用Maven在Hudson build服务器上构建项目时,我需要javax.comm库。在我的projects pom.xml文件中,我有如下依赖关系: <dependency> <groupId>javax.comm</groupId> <artifactId>comm</artifactId> <version>2.0.3</version> </dependency>

在使用Maven在Hudson build服务器上构建项目时,我需要javax.comm库。在我的projects pom.xml文件中,我有如下依赖关系:

<dependency>
    <groupId>javax.comm</groupId>
    <artifactId>comm</artifactId>
    <version>2.0.3</version>
</dependency>
我做错了什么

-编辑-

我最终从下载了java comm lib,并让Maven管理员将其安装到本地存储库中。 正如下面的答案所指出的,由于Oracle(以及之前的Sun)的许可限制,java comm lib在公共回购协议上不可用。

如果您查看“官方”Maven 2存储库,您将在库的
pom.xml
文件中看到:

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

4.0.0
javax.comm
(或者更好,将其部署到企业存储库中)


有些库(Oracle JDBC驱动程序是另一个例子)不能直接下载,这有时会发生,主要是因为特定的许可证…

实际上maven在公共repos上找不到它

[信息]在存储库java.net存储库中找不到资源“javax.comm:comm:jar:2.0.3”(http://download.java.net/maven/2) ... [信息]在repository central中找不到资源“javax.comm:comm:jar:2.0.3”(http://repo1.maven.org/maven2)

您必须从任何来源下载,然后将其安装到本地存储库中:

    <repository>
        <id>java.net repository</id>
        <url>http://download.java.net/maven/2</url>
    </repository>
mvn install:install-file -DgroupId=javax.comm -DartifactId=comm -Dversion=2.0.3 -Dpackaging=jar -Dfile=/path/to/file
或者将其部署到公司存储库(如果有):


由于许可限制,javax.comm包在任何公共存储库中都不可用,请参阅此处了解更多详细信息:

POM还提供下载url。您应该使用提供的链接下载jar:

并将其放置在公司存储库服务器的“
/javax/comm/comm/2.0.3/
”中,像artifactory这样的服务器提供了一个web前端


如果没有存储库服务器,可以将其放置在主文件夹的
.m2/repository
目录中。在那里创建一个目录“
/javax/comm/comm/2.0.3/
”,并将第一个链接中的pom和下载的jar放置在此文件夹中。但这只适用于您的本地计算机。

jar在公共存储库中不可用,可能是出于许可的原因

下载并使用部署

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

您还可以在源代码管理中添加工件,并在构建之前使用maven安装插件将其安装到本地。

您的公司repo似乎没有javax.comm:comm:jar:2.0.3,或者,或者它无法将请求转发给这样做的人?为什么Maven不能在我公司的回购协议中找到它时,不在公共回购协议中找到它?因为它没有配置为在那里查找。这是公司的标准配置,能够监视/控制正在使用的内容(许可问题是这里的主要问题)。你应该让别人把它加入公司回购协议,否则你可能会在法律部门遇到麻烦。谢谢大家的帮助。啊!似乎javax.comm2.0.3在任何地方都不可用。甲骨文已经完全埋葬了它,或者使它无法找到。因此,所有这些答案,不管它们曾经有什么优点,都不再有效。有人能告诉我在哪里可以通过任何方式获得java comm.jar v2.0.3的副本吗?
mvn deploy:deploy-file -DgroupId=javax.comm -DartifactId=comm -Dversion=2.0.3 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]    
mvn deploy:deploy-file -DgroupId=javax.comm -DartifactId=comm \
   -Dversion=2.0.3  -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] \
   -DrepositoryId=[id]