java - 设置 Spring Archetype 时重复出现的问题

标签 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 启动演示项目,并且可以正常访问。

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

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

我就是不明白。我是 spring 新手,并没有经常使用 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 从我的用户文件夹符号链接(symbolic link)到项目文件夹,甚至添加了指向同一位置的环境变量 M2_REPO。 所有引用的文件都在文件夹结构中。但我仍然遇到相同的错误,并且 maven-jar 的类路径依赖项 validator 仍然发出警告。

如果这有帮助:

我在 oracle-vm 内的 64 位 XUbuntu 上运行它。 我从存储库安装了 maven2 和 openjdk-7-jdk,从官方网站安装了 Springsource Toolsuite .sh-installer 64Bit 2.9.2。

我很困惑,因为我从来没有想过建立一个简单的演示原型(prototype)会那么困难。我想我犯了一个简单/天真的初学者错误。但我不知道。请帮助我。

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

最佳答案

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

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

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

关于java - 设置 Spring Archetype 时重复出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11808011/

相关文章:

java - 在 AWS Lambda : java. lang.Exception 上运行 JUnit 测试:没有可运行的方法

java - 如何在自定义安全领域 (Glassfish) 中使用自定义委托(delegate)人?

java - 使用 Spring 的电子邮件客户端

java - Hibernate ManyToMany 方法抛出 'org.hibernate.LazyInitializationException' 异常

spring - JPA JPQL IN 子句 : How to use IN clause in JPA?

java - Android:从菜单项开始新 Activity

java - Tomcat 使用 war 名称作为 Spring 引导的基本 URL

java - 使用 Eclipse IDE 排除第 3 方库,它是来自 ProGuard 的类和子类

java - OSX 10.9 Mavericks 和 Eclipse Kepler (4.3.2) 或 M6 Eclipse Luna (4.4)

java - 删除 Eclipse 中的尾随空格——来自评论