我在.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
目录中。
更新
javax.ejb.jar
我的意思是在正确的文件夹层次结构中的存储库目录中(它是什么)。.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
等等
您可能需要在pom.xml文件或.m2 / settings.xml文件中提供存储库位置,以便将所需的jar下载到.m2目录中。
我找到了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
虽然这是一个新版本,但对于编译应该这样做。
我想我现在听你的意思:)
您指定的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.jar
and,它的名字是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
依赖关系被声明为提供容器将提供它的含义。
你用的是什么容器?我认为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