我无法在.m2目录中找到javax.ejb.jar
,我需要import javax.ejb.Schedule;
这个jar,这是我的pom文件条目。
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
我不确定它是否会起作用,或者它是一种正确的做事方式。有人可以帮助对POM
文件进行更改,以便将javax.ejb.jar
下载到.m2
目录中。
更新
.m2
我的意思是在正确文件夹的存储库目录中
层次结构(它是什么)。M2_REPO
的相对路径可以帮助开发人员获得consitenat代码(用于eclipse项目)。否则每个人都会添加自己的路径。如果它仍然没有意义,这就是我想要的,请给我一个POM文件的条目,它将javax.ejb.jar文件下载到.m2目录中的子路径是什么。
我必须手动将这个jar包含在每个项目中(并且每个开发人员都需要它们以及任何目录中的glassfish(C:,D:,E:或/ home / glassfish / modules /)
D:\servers\glassfish-3.1.2\glassfish3\glassfish\modules\javax.ejb.jar
其中每个项目中的其余jar都包含在M2_REPO/path/to/jar
中,这使得提交的代码库中没有任何更改。
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 :(得分:0)
您可能需要在pom.xml文件或.m2 / settings.xml文件中提供存储库位置,以便将所需的jar下载到.m2目录中。
答案 1 :(得分:0)
我找到了another artifactId here,虽然maven也有你的版本。 一个(非常)奇怪的maven缓存问题?然后明天可能会工作。
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>javax.ejb-api</artifactId>
<version>3.2</version>
</dependency>
虽然这是一个新版本,但对于编译它应该这样做。
答案 2 :(得分:0)
我想我现在听到你的意思了:)
您指定的maven依赖
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
您在.m2/repository/javax/ueb/ejb-api/3.0/ejb-api-3.0.jar
中的不包含类/接口javax.ejb.Schedule
。
但是你在glassfish服务器中找到了jar文件,它包含javax.ejb.Schedule
,其名称为D:\servers\glassfish-3.1.2\glassfish3\glassfish\modules\javax.ejb.jar
,现在你问如何将它放入pom中?
嗯,Java EE API和它们在maven中的官方罐子在某种程度上是一种不协调的研究。 如果您在maven central上运行搜索,您会发现多个包含该类的jar。您可能会注意到,所有appserver供应商都会在每个版本中为每个api的每个方面提供自己的版本。
你应该能够在版本3.1.2中找到一个带有来自glassfish的javax.ejb模块的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>
答案 3 :(得分:-2)
依赖项被声明为提供容器将提供它的含义。
你在用什么容器?我认为Tomcat / Jetty不会像Java EE那样提供那个jar。在这种情况下,只需将范围更改为compile
。
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
<scope>compile</scope>
</dependency>
有关依赖范围的更多信息: http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope