使用mvn exec执行spring app:java

时间:2014-03-07 11:12:36

标签: java spring maven

我的maven JAR应用程序包含两个模块 - framefowrk和accounting - 以及一个聚合器。模块框架定义了一些在会计中使用的spring类。会计 包含一个main-Class和一个maven依赖的框架。我通过“Run as-> Java Application”在eclipse中运行Main-Class - 一切正常。现在我正在尝试使用

执行该主程序

mvn exec:java -Dexec.mainClass =“accounting.MyMainClass”

该命令产生以下输出:

ava.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'jcrSessionFactory' is defined
... 6 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'jcrSessionFactory' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1094)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:276)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1079)
...

显然,春天的东西在会计中是不知道的。我想知道“运行as-> Java应用程序”和mvn exec:java之间的区别在哪里以及如何解决问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

也许你需要“mvn install”你的框架依赖?那里的变化不会到达Maven,但可能在Eclipse中可见。

可能出错的另一件事是订购。你是如何加载配置的?如果它依赖于顺序(例如,使用带有重复bean名称的classpath*:或者在类路径上使用重复文件名的classpath:),则结果可能会有所不同。