我厌倦了在Maven中手动安装javax jar文件,并且想知道在maven存储库中不容易找到的javax.cache,javax.transaction或其他JSR包含依赖项的最佳解决方案是什么
答案 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的配置和管理,而且还集中了所有外部存储库的配置和管理。它还可以帮助自动化您的构建,创建更多“可重现”的构建(例如,如果您有一个持续集成服务器池)。
现在,您可以集中定义所有第三方存储库&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
感谢大家分享!