1

Ubuntu マシンでSpring 3 Hello World チュートリアルを実行しようとしましたが、いくつかの問題が発生しました。

まず、Springsource ToolSuite 3.1.0 リリースに取り組んでおり、マシンに Maven をインストールしています。同じサイトで Maven チュートリアルを使用した Java アプリを既に使用しました。

まず、Maven は依存関係の問題を解決するものではないのでしょうか? 私が書いたとき

import org.springframework.*;

ライブラリが見つからないというエラーが表示されたため、この問題を解決するには、JAR 自体を手動でビルド パスに追加する必要がありました。これは、ビルド パス ウィザードに多数の .m2/REPO ライブラリ パスが存在するにもかかわらずでした。

mvn --version戻り値

jason@asus:~/IDE/springsource/sts-3.1.0.RELEASE/plugins$ mvn --version
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Java home: /usr/lib/jvm/java-6-openjdk-i386/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.5.7-03050702-generic", arch: "i386", family: "unix"

次に、コマンド ラインから実行すると、次のような出力が得られます。

jason@asus:~/Documents/workspace-sts-/SpringExample$ java -cp target/SpringExample-1.0-SNAPSHOT.jar com.jasonjohns.App
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/beans/factory/BeanFactory
  at java.lang.Class.getDeclaredMethods0(Native Method)
  at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
  at java.lang.Class.getMethod0(Class.java:2685)
  at java.lang.Class.getMethod(Class.java:1620)
  at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:492)
  at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:484)


Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.BeanFactory
  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

念のため、STS/plugins フォルダを確認したところ、org.springframework.beans_3.1.1.RELEASE.jarそこにありました。

私のpom.xmlは

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
    <groupId>com.jasonjohns</groupId>
    <artifactId>SpringExample</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>SpringExample</name>
    <url>http://maven.apache.org</url>
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
  </dependency>

  <!--  Spring 3 Dependencies  -->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.1.1.RELEASE</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.1.1.RELEASE</version>
  </dependency>
</dependencies>
</project>
4

1 に答える 1

1

ターミナルでプロジェクトの場所に移動してから、実行してみますmvn eclipse:eclipse。これにより、Eclipse / Spring Tool Suite固有のファイルが(再)生成されます。基本的に、.classpathファイルと.projectファイルが作成されます(http://maven.apache.org/plugins/maven-eclipse-plugin/eclipse-mojo.htmlを参照)。

.classpathは基本的にビルドパスであり、eclipse:eclipse mavenを実行すると、pom.xmlの内容に基づいて生成されます。

完了したら、Eclipse/STSでプロジェクトを更新します。自動的にビルドすることがチェックされていることを確認します([プロジェクト]-> [自動的にビルド])。

于 2013-01-18T00:37:46.617 に答える