4

私は最近、Java 開発を行うこのグループと協力し始めました。彼らはすべてのコードを管理するために maven と svn を使用していますが、私は maven を実際に使用した経験がないため、キャッチアップを試みています。私が見てきたことから、彼らのプロジェクトの 1 つを変更する場合は、svn でチェックアウトし、pom.xml の依存関係を 20 分間いじってから、mvn install などを使用してビルドできます。内部リポジトリがあり、すべてのプロジェクトにはリポジトリ内のコードへの多くの依存関係があるため、毎回 maven を使用してビルドするのにかなり苦労しています。依存関係が原因で、Maven からの Eclipse プロジェクトの生成が機能しません。

私が本当にイライラしているのは、コードを実行したりデバッグしたりする良い方法がないように見えることです。manifest.mf ファイルにメイン関数への正しいパスがないなどの理由で、Maven は maven によってのみ実行できる jar ファイルを生成しています。Java -jar はそれらに対して機能しません。

デバッグに関する限り、私は今日のほとんどを Google で費やして、Eclipse を使用してコードをステップ実行する方法を見つけようとしましたが、どうやらそれはできないようです。私は確実なプラグインを使用して一種のリモート デバッグをセットアップしようとしていましたが、そのための単体テストを作成するか、私の目的にはやり過ぎです。以前の Java の経験では、はるかに単純な svn、ant、および eclipse を使用しました。

とにかく、より経験のある人が、ビルドツールとしてmavenを使用して開発するためのヒントを教えてもらえますか? 同僚に尋ねることは、一般的に役に立ちませんでした。Maven はおそらく、ほとんど何も知らない素晴らしいツールだと思います。コードをステップスルーしてデバッグすることができなければ、何もできません。

4

2 に答える 2

4

Eclipse で Maven プロジェクトを開発する場合は、m2e プラグインを使用するか、Eclipse マーケットプレイスから直接 (つまり、メニューから) インストールします。

依存関係、ビルドパス、クラスパス、環境設定などを自動的に処理します - ここで詳細を学ぶことができます

于 2013-03-14T02:22:26.770 に答える
1

Maven POMファイルの開発は、多くのことが行われている場合は複雑になる可能性がありますが、一度作成すると、プロジェクトの構築と操作が非常に簡単になるはずです。同僚がMavenベースのプロジェクトでの作業方法を説明できないのは厄介です。

Eclipseを使用している場合は、m2eプラグインが最適です。心ゆくまでシングルステップでデバッグでき、プロジェクトがMavenベースであることをほとんど無視できます。

本当にjarファイルをビルドして操作したい場合は、を使用して、maven-shade-pluginすべての依存関係を含むüber-jarファイルをビルドします。(これは通常、配布するようなものではありませんが、コマンドライン作業用の単純なjarファイルが必要な場合は素晴らしいです。)shadeプラグインを使用するには、これを<plugins>POMのセクションに追加します。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.6</version>
    <configuration>
      <transformers>
        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
           <mainClass>you.main.class.GoesHere</mainClass>
        </transformer>
      </transformers>
    </configuration>
    <executions>
      <execution>
        <phase>package</phase>
        <goals><goal>shade</goal></goals>
      </execution>
     </executions>
 </plugin>

そして、実行します

 mvn package

コマンドラインで

于 2013-03-14T06:25:12.177 に答える