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

时间:2009-06-25 16:34:20

标签: java maven-2 java-ee

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

5 个答案:

答案 0 :(得分:12)

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

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

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:4)

如果构建在多个盒子上和/或用于团队开发,本地(intranet)maven存储库管理器可以帮助这些“丢失”的jar。这不仅集中了不在公共存储库中的第三方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. 手动将'问题'罐子上传到您的内部仓库(再次,通过网络界面使用Nexus超级简单);
  4. 将内部mvn repo mgr设置为repo1.maven.org/maven2,codehaus,java.net,...(等)的“镜像”。
  5. 现在,您可以集中定义所有第三方存储库&amp;第三方罐子 - 而不是要求每个人,每个盒子和/或每个项目在他们的pom或settings.xml中单独定义它们。每个项目/人/盒只能将您的中央内部maven仓库定义为所有maven项目的单个仓库。

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

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

答案 3 :(得分:3)

javax.cache位于jcache:jcache:1.0-XXX神器中(在Maven的中央仓库中)

<dependency>
    <groupId>jcache</groupId>
    <artifactId>jcache</artifactId>
    <version>1.0-dev-2</version>
</dependency> 

javax.transaction.*类在javax.transaction:jta:1.1工件中,JTA jar无法插入Maven存储库,因为Sun的二进制许可证(我知道,这很糟糕)。要使用它,您需要手动下载JAR(它是免费的)并将其放入本地仓库或使用java.net中包含的1.0.1B版本。

注意:我在某些地方读过JTA将集成在JDK的未来版本中

我知道在Maven的存储库中找到这些工件真的很痛苦,但你可以在www.mvnrepository.com中搜索一个类,它会为大多数所有包显示正确的groupId和artifactId。

答案 4 :(得分:2)

在JTA的特定情况下,我点击了这篇文章:

http://www.jugpadova.it/articles/2005/11/26/maven-2-spring-and-jta-depencies

..这是有道理的,如果我不必花费大量时间在甲骨文的可怕网站上获得前面提到的JAR文件。 (我本人就是甲骨文的爱好者,但该网站可以在这里和那里使用大量的UX返工。)

我决定用Hibernate提供的依赖替换,通过Geronimo,根据这篇文章(完美地工作):

https://forum.hibernate.org/viewtopic.php?p=2420836

目前,Hibernate团队正在处理Java许可和Maven的交易,或者似乎在这里:

https://hibernate.onjira.com/browse/HHH-4548

感谢大家分享!