如何在Maven中添加javax.*依赖项?

pje*_*esi 20 java maven-2 java-ee

我厌倦了在Maven中手动安装javax jar文件,并且想知道在javax.cache,javax.transaction或其他在Maven存储库中不容易找到的JSR中包含依赖项的最佳解决方案是什么.

mat*_*t b 12

你看过http://maven.apache.org/guides/mini/guide-coping-with-sun-jars.html吗?

此链接建议使用groupID和artifactID,以及java.net存储库.

在我看来,在这个命名方案下,几乎所有这些都存在于Maven中央存储库中.


Jon*_*Jon 5

我不知道,但添加java.net存储库可能会帮助您解决这些依赖关系:

<repositories>
   <repository>
      <id>java.net repository</id>
      <url>http://download.java.net/maven/2</url>
   </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)


mic*_*ael 5

如果构建在多个盒子上和/或为了团队开发,本地(内联网)maven 存储库管理器可以帮助处理这些“丢失”的 jar。这不仅集中了不在公共存储库中的第 3 方 jar 的配置和管理,而且还集中了所有外部存储库的配置和管理。它还可以帮助自动化您的构建,创建更多“可重复”的构建(例如,如果您有一个持续集成服务器池)。

  1. 安装 mvn repo mgr(请参阅列表 - imo,nexus 上手非常简单);
  2. 使用自定义 settings.xml,其中包含指向您的 Intranet mvn repo mgr 的“镜像”部分。要么更新你的 ~/.m2/settings.xml,要么用“mvn -s etc/settings.xml”运行 Maven——对于 hudson 构建很有用,你不需要自定义的每用户 settings.xml;
  3. 手动将“问题”jar 上传到内部存储库(同样,通过网络界面使用 Nexus 超级简单);
  4. 将内部 mvn repo mgr 设置为 repo1.maven.org/maven2、codehaus、java.net 等的“镜像”。

现在,您可以 集中定义所有第 3 方存储库和第 3 方 jar - 而不是要求每个人、每个框和/或每个项目在其 pom 或 settings.xml 中单独定义它们。每个项目/人/框只会将您的中央内部 Maven 存储库定义为所有 Maven 项目的单个存储库。

这也确实加快了新构建的工件重新下载时间,或者当您需要(或想要)删除本地 ~/.m2/repository 缓存时。

回购管理器:nexus、archiva、artifactory...例如:maven.apache.org/repository-management.html - http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix