设置Spring Archetype时重复出现问题

时间:2012-08-04 10:47:27

标签: java eclipse spring maven

我在其他地方找不到这个问题的答案。

我正在尝试建立一个虚拟机来学习spring,wicket和hibernate。我从this maven-archetype开始,并像这样使用它:

mvn archetype:generate -DarchetypeGroupId=nl.iprofs -DarchetypeArtifactId=wicket-spring-hibernate-quickstart -DarchetypeVersion=1.3 -DarchetypeRepository=http://www.iprofs.nl/repository/ -DinteractiveMode=false -DgroupId=me.sandbox -DartifactId=swh
cd swh
mvn install 
mvn eclipse:eclipse
mvn jetty:run

Jetty启动了demoproject,它应该是可访问的。

然后我将项目导入最新的STS(SpringSourceToolsuite)。但是当我部署应用程序时,我收到此错误:

SEVERE: Error configuring application listener of class org.springframework.web.util.Log4jConfigListener
java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

我只是不明白。我是春天的新手,并没有经常使用maven,但我认为maven会自动解决依赖关系(如上所述):/

在我的.classpath文件中,我找到(除了许多其他文件)这些条目:

<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>

似乎M2_REPO未定义。我尝试将文件夹.m2 / repository从我的用户文件夹符号链接到项目文件夹,甚至添加了指向同一位置的环境变量M2_REPO。 所有引用的文件都在文件夹结构中。但我仍然得到相同的错误,并且仍然有来自maven-jar的Classpath Dependency Validator的警告。

如果有任何帮助:

我在oracle-vm里面的64Bit XUbuntu上运行它。 我从官方站点的Springsource Toolsuite .sh-installer 64Bit 2.9.2安装了maven2和openjdk-7-jdk。

我很困惑,因为我从未想过设置一个简单的demo-archetype会很困难。我想我做了一个简单/天真的初学者错误。但我不知道。请帮帮我。

如果您需要更多信息,请告诉我们。

2 个答案:

答案 0 :(得分:0)

如果M2_REPO未定义,通常应该在eclipse / STS中收到警告。要确保该变量可用,您可以转到Preferences > Java > Build path > Classpath variables。如果此处未定义M2_REPO变量,则可以使用<path>/.m2/repository

的路径添加变量

我不能说你正在使用的maven-archetype。但也许你应该看看Spring roo,它可以帮助你创建一个新的Spring项目(创建配置文件,添加pom.xml的依赖项等)。 使用带有roo的hibernate创建一个新的Spring项目基本上是编写2个命令:

project --topLevelPackage com.company.project
jpa setup --provider HIBERNATE --database MYSQL

答案 1 :(得分:0)

如果你有eclipse的M2插件设置,你可以在那里设置M2_HOME。 如果你没有为eclipse安装m2插件,那么只需将你的M2存储库添加到类路径