我对Java比较陌生,所以我希望这不是一个愚蠢的问题。
我在Eclipse中有一个Web项目,我正在尝试部署到Tomcat。我在Eclipse中有两个依赖项目,它们被编译成.jar文件并部署到/ WEB-INF / lib目录。
这很好,但不幸的是,Spring不会扫描依赖项中的注释,除非将.jars中的类文件解压缩到/ WEB-INF / classes目录中。
是否有一种简单的方法可以在构建时进行这种提取?我正在使用Maven。我暂时写了一个批处理文件(我在Windows上开发,在Ubuntu上部署)
我对如何自动执行服务器部署有疑问,但是,我做错了吗?当然,我不是唯一一个与这个问题搏斗的人。
答案 0 :(得分:10)
根据这个Spring issue, 如果您使用导出...>在Eclipse中创建JAR文件Java> JAR文件向导,然后您必须选中添加目录条目复选框(默认情况下未选中),以便Spring的组件扫描查找JAR文件中的组件。
答案 1 :(得分:6)
我认为spring扫描整个类路径,你只需要提供:
<context:component-scan base-package="org.example"/>
有一条注释in the docs:
扫描类路径包需要在类路径中存在相应的目录条目。使用Ant构建JAR时,请确保不要激活JAR任务的仅文件开关。
答案 2 :(得分:0)
既然你提到你也在使用注释
<context:annotation-config/>
<context:component-scan base-package="org.example"/>
是您的示例* .xml文件中需要的内容
答案 3 :(得分:0)
@Chin Huang,
非常感谢您的回答。
使用Eclipse生成.jar并且从未想到这可能是问题所在。
我使用ANT生成.Jar并修复了问题。有时候有太多的选择让你感到困惑,这就是其中一个案例。