javax.ejb.jar的maven依赖项到.m2目录中

问题描述 投票:0回答:4

我在.m2目录中找不到qazxsw poi,我需要这个jar用于qazxsw poi,这是我的pom文件条目。

javax.ejb.jar

我不确定它是否会起作用,或者它是一种正确的做事方式。有人可以帮助在import javax.ejb.Schedule;文件中进行更改,以便将<dependency> <groupId>javax.ejb</groupId> <artifactId>ejb-api</artifactId> <version>3.0</version> <scope>provided</scope> </dependency> 下载到POM目录中。

更新

  1. 作者:javax.ejb.jar我的意思是在正确的文件夹层次结构中的存储库目录中(它是什么)。
  2. 为什么?我们有多个子项目(在eclipse工作区中),为了解决依赖关系,我们使用M2_REPO / path /来/ / / required_library_file.jar,现在这些项目是代码库的一部分,每个开发人员下载源代码,Maven下载所有jar到存储库目录(使用任何OS /平台的开发人员)。来自.m2的这条相对路径可以帮助开发人员获得consitenat代码(用于eclipse项目)。否则每个人都会添加自己的路径。

如果它仍然没有意义,这就是我想要的,请给我一个POM文件的条目,它将javax.ejb.jar文件下载到.m2目录中的子路径是什么。

我必须手动在每个项目中包含这个jar(并且每个开发人员都需要它们以及任何目录中的glassfish(C:,D:,E:或/ home / glassfish / modules /)

.m2

其中每个项目中的其余jar包含在M2_REPO中,这使得代码库中的更改不会更改。

D:\servers\glassfish-3.1.2\glassfish3\glassfish\modules\javax.ejb.jar

等等

java maven java-ee jar
4个回答
0
投票

您可能需要在pom.xml文件或.m2 / settings.xml文件中提供存储库位置,以便将所需的jar下载到.m2目录中。


0
投票

我找到了M2_REPO/path/to/jar,虽然maven也有你的版本。一个(非常)奇怪的maven缓存问题?然后明天可能会工作。

M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0.jar
M2_REPO/javax/enterprise/cdi-api/1.0-SP1/cdi-api-1.0-SP1.jar
M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar

虽然这是一个新版本,但对于编译应该这样做。


0
投票

我想我现在听你的意思:)

您指定的maven依赖项

another artifactId here

你在<dependency> <groupId>javax.ejb</groupId> <artifactId>javax.ejb-api</artifactId> <version>3.2</version> </dependency> 中有的不包含类/接口<dependency> <groupId>javax.ejb</groupId> <artifactId>ejb-api</artifactId> <version>3.0</version> <scope>provided</scope> </dependency>

但你在你的glassfish服务器中找到了jar文件,它确实包含.m2/repository/javax/ueb/ejb-api/3.0/ejb-api-3.0.jarand,它的名字是javax.ejb.Schedule,现在你问如何将它放入pom?

那么,Java EE API和它们在maven中的官方罐子在某种程度上是一种不协调的研究。如果你在javax.ejb.Schedule上运行搜索,你会发现多个包含该类的罐子。您可能会注意到,所有appserver供应商都会在每个版本中为每个api的每个方面提供自己的版本。

你应该能够在版本3.1.2中找到一个带有来自glassfish的javax.ejb模块的jar

D:\servers\glassfish-3.1.2\glassfish3\glassfish\modules\javax.ejb.jar

在这种情况下,依赖性将是

maven central

-2
投票

依赖关系被声明为提供容器将提供它的含义。

你用的是什么容器?我认为Tomcat / Jetty不会像Java EE那样提供那个jar。在这种情况下,只需将范围更改为http://search.maven.org/#artifactdetails|org.glassfish|javax.ejb|3.1.2|jar

<dependency>
  <groupId>org.glassfish</groupId>
  <artifactId>javax.ejb</artifactId>
  <version>3.1.2</version>
  <scope>provided</scope>
</dependency>

有关依赖范围的更多信息:compile

© www.soinside.com 2019 - 2024. All rights reserved.