4

依存関係をより標準的に管理するために、ビルドシステムとしてMavenに移行しようとしています。

これは私が行う手順であり、私が尋ねる単純な(Maven初心者の)質問です。このプロセスは私が想像できる最も簡単なものなので、この問題は非常に簡単に再現できるはずです。

  1. ファイル、新しいプロジェクト、Maven、Webアプリケーションから始めましょう。次のフォームでは、「Apache Tomcat 7.0.11.0」を選択したアプリケーションサーバーフィールドを除いて、すべてのデフォルトを保持しています。このウィザードはフレームワーク(Sring、Hibernateなど)を提案していませんが、標準の非Mavenプロジェクト作成ウィザードではフレームワークの選択を含めることができます。

プロジェクトを今見てみると、次のようになります。

ここに画像の説明を入力してください

最初の質問は、なぜ春がすでに含まれているのか、それ以前に明示的に追加したのかということです。

プロジェクトのプロパティを見てみましょう。
ここに画像の説明を入力してください

したがって、フレームワークは選択されていません。依存性注入コンテナのためだけにSpringを使用したいと思います(後で、Springのセキュリティを追加する可能性がありますが、現時点ではこれは優先事項ではありません)。上で述べたように、いくつかのコアモジュールがすでに含まれているので、もう一度追加する必要がありますか?

  1. プロジェクトのプロパティのフレームワークノードで、Hibernateを追加し、データベース接続を選択しました。依存関係は次のようになります。

ここに画像の説明を入力してください

それらのうちの2つ(スクリーンショットで強調表示しています)は、「依存関係はまだダウンロードされていません。エラーを修正するプロジェクトをビルドしてください」とマークされています(ポインターをそれらの上に移動すると、このメッセージがヒントとして表示されます)。プロジェクトをビルドしましたが、エラーが残っています。
Mavenの出力では、次のように表示されます。

プロジェクトCreatingMavenSpringProjectで目標を実行できませんでした:プロジェクトcom.mycompany:CreatingMavenSpringProject:war:1.0の依存関係を解決できませんでした-スナップショット:次のアーティファクトを解決できませんでした:javax.sql:jdbc-stdext:jar:2.0、javax.transaction: jta:jar:1.0.1B:unknown-jars-temp-repo(file:C:\ Users \ agostino \ Documents \ NetBeansProjects \ CreationMavenSpringProject / lib)にアーティファクトjavax.sql:jdbc-stdext:jar:2.0が見つかりませんでした- >[ヘルプ1]

エラーの完全なスタックトレースを確認するには、-eスイッチを指定してMavenを再実行します。
-Xスイッチを使用してMavenを再実行し、完全なデバッグログを有効にします。

私はそれが示唆するように試しました:

org.apache.maven.lifecycle.LifecycleExecutionException:目標oの実行に失敗しました
nプロジェクトCreatingMavenSpringProject:プロジェクトの依存関係を解決できませんでした
 com.mycompany:CreatingMavenSpringProject:war:1.0-スナップショット:次のアーティファ
ctsを解決できませんでした:javax.sql:jdbc-stdext:jar:2.0、javax.transaction:jta:
jar:1.0.1B:file:C:\ Users \ agostでjavax.sql:jdbc-stdext:jar:2.0が見つかりません
ino \ Documents \ NetBeansProjects \ CreationMavenSpringProject/libはにキャッシュされました
ローカルリポジトリ、更新間隔oまで解決は再試行されません
f unknown-jars-temp-repoが経過したか、更新が強制されました
        org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDeで
ペンダント(LifecycleDependencyResolver.java:210)
        org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolで
veProjectDependencies(LifecycleDependencyResolver.java:117)
        org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesArで
eResolved(MojoExecutor.java:258)
        org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:201)
        org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:153)
        org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:145)
        org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProjeで
ct(LifecycleModuleBuilder.java:84)
        org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProjeで
ct(LifecycleModuleBuilder.java:59)
        org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuで
ild(LifecycleStarter.java:183)
        org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl
eStarter.java:161)
        org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)で
        org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)で
        org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)で
        org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)で
        org.apache.maven.cli.MavenCli.main(MavenCli.java:141)で
        sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)で
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。
java:39)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:597)で
        org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun
cher.java:290)
        org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
a:230)
        org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:409)
        org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
352)
原因:org.apache.maven.project.DependencyResolutionException:解像度ができませんでした
プロジェクトcom.mycompany:CreatingMavenSpringProject:war:1.0-Sの依存関係を解決します
ナップショット:次のアーティファクトを解決できませんでした:javax.sql:jdbc-stdext:ja
r:2.0、javax.transaction:jta:jar:1.0.1B:javax.sql:jdbc-stdext:jが見つかりません
ファイル内のar:2.0:C:\ Users \ agostino \ Documents \ NetBeansProjects \ CreationMavenSpringP
roject/libがローカルリポジトリにキャッシュされました。解決は再試行されません
d unknown-jars-temp-repoの更新間隔が経過するか、更新が行われるまで
 強制
        org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(D
efaultProjectDependenciesResolver.java:189)
        org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDeで
ペンダント(LifecycleDependencyResolver.java:185)
        ...22もっと
原因:org.sonatype.aether.resolution.DependencyResolutionException:次の
ローイングアーティファクトを解決できませんでした:javax.sql:jdbc-stdext:jar:2.0、javax.tra
nsaction:jta:jar:1.0.1B:file:Cでjavax.sql:jdbc-stdext:jar:2.0が見つかりません
:\ Users \ agostino \ Documents \ NetBeansProjects \ CreationMavenSpringProject/libはcでした
ローカルリポジトリで停止すると、updaまで解決が再試行されません
unknown-jars-temp-repoの間隔が経過したか、更新が強制されました
        org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDepeで
ndencies(DefaultRepositorySystem.java:375)
        org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(D
efaultProjectDependenciesResolver.java:183)
        ...23もっと
原因:org.sonatype.aether.resolution.ArtifactResolutionException:次の
ウィングアーティファクトを解決できませんでした:javax.sql:jdbc-stdext:jar:2.0、javax.trans
action:jta:jar:1.0.1B:file:C:\でjavax.sql:jdbc-stdext:jar:2.0が見つかりません
Users \ agostino \ Documents \ NetBeansProjects \ CreationMavenSpringProject/libはcacでした
ローカルリポジトリにある場合、更新されるまで解決は再試行されません
 unknown-jars-temp-repoの間隔が経過したか、更新が強制されました
        org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(Def
aultArtifactResolver.java:538)
        org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtiで
facts(DefaultArtifactResolver.java:216)
        org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDepeで
ndencies(DefaultRepositorySystem.java:358)
        ...さらに24
原因:org.sonatype.aether.transfer.ArtifactNotFoundException:失敗
nd javax.sql:jdbc-stdext:jar:2.0 in file:C:\ Users \ agostino \ Documents \ NetBeansPro
jects \ CreationMavenSpringProject/libはローカルリポジトリにキャッシュされました。
unknown-jars-temp-repoの更新間隔が完了するまで、ionは再試行されません。
経過したか、更新が強制されます
        org.sonatype.aether.impl.internal.DefaultUpdateCheckManager.newExceptで
ion(DefaultUpdateCheckManager.java:230)
        org.sonatype.aether.impl.internal.DefaultUpdateCheckManager.checkArtiで
fact(DefaultUpdateCheckManager.java:204)
        org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(Def
aultArtifactResolver.java:427)
        ...26もっと

そして今、私はこの時点で立ち往生しています。これは、休止状態を追加しようとしたときのMavenプロジェクトのすぐに使用可能な動作であることに注意してください。これを修正する方法は?

4

3 に答える 3

3

Tomcat 7.0.27を使用すると、最初の問題(Springの依存関係)は表示されませんが、2番目の問題(依存関係をダウンロードできない)を複製できます。私pom.xmlが見ると、この依存関係などのエラーがあります。

<dependency>
    <groupId>unknown.binary</groupId>
    <artifactId>derbyclient</artifactId>
    <version>SNAPSHOT</version>
</dependency>

そしてこのリポジトリ:

<repository>
    <id>unknown-jars-temp-repo</id>
    <name>A temporary repository created by NetBeans for libraries and jars it 
    could not identify. Please replace the dependencies in this repository with 
    correct ones and delete this repository.</name>
    <url>file:${project.basedir}/lib</url>
</repository>

Netbeans wikiページにはMavenプロジェクトでのフレームワーク選択の例が示されていますが、「依存関係」ノードの「依存関係の追加...」オプションから依存関係を追加することをお勧めします。

編集:pom.xml別のマシンで同じ手順を繰り返した後のエラーを追加しました。

于 2013-01-14T05:37:49.407 に答える
3

リポジトリセクションの下に次のリポジトリを追加することにより、POMファイルを手動で変更できます。

<repositories>
   ...
   <repository>
      <id>java.net-m2</id>
      <name>java.net - Maven 2</name>
      <url>https://repository.jboss.org/nexus/content/repositories/java.net-m2</url>
   </repository>
</repositories>
于 2014-02-04T21:41:37.690 に答える
-1

依存関係はいつでも手動でダウンロードできます。たとえば、http://download.java.net/maven/2/javax/sql/jdbc-stdext/2.0/jdbc-stdext-2.0.jar-jta-1.0から--jdbc-stdext-2.0.jarをダウンロードできますhttp://download.java.net/maven/2/javax/transaction/jta/1.0.1B/jta-1.0.1B.jarの1B.jar

次に、jarを.m2リポジトリの正しい場所に配置します。-.m2 / repository / javax / sql / jdbc-stdext / 2.0 / jdbc-stdext-2.0.jar-.m2 / repository / javax / transaction / jta / 1.0.1B / jta-1.0.1B.jar

次に、Mavenをクリーンにしてビルドします。

于 2013-04-01T21:02:02.003 に答える