2

私はmavenが初めてです。ここで2つの問題があります:

1、アーティファクトの欠落問題を解決するには?

jcharts-0.7.5 が必要ですが、Maven Central Repository では利用できません。私はjarファイルを持っていますが、それをMavenプロジェクトに入れるのは簡単ではないようです.

2,アーティファクトの間違った依存範囲を修正するには?

アーティファクト axis2-kernel に依存する WAR プロジェクトがあります。これは、「コンパイル」の範囲 (「提供」の間違い) を持つ servlet-api-2.3 に依存しているためmvn install、servlet-api-2.3.jar を war ファイルにパケット化します。 、そして「validateJarFile(...) - jarがロードされていません」を引き起こします。Tomcat 7 のエラー。

4

3 に答える 3

2

その 1: Maven リポジトリを使用します。これは、静的コンテンツを含む単純な Apache HTTP サイトにすることができます。しかし、どこにも見つからないアーティファクトを保存するには、Sonatype Nexus または JFrog Artifactory を使用することをお勧めします。それらは JBoss リポジトリまたは IBiblio (どちらも非常に大きい) にあります。

2 番目: その依存関係を pom に追加して、必要なスコープを設定するだけです。アーティファクトを除外する場合は、いずれにせよ再度追加する必要があります。Maven は常に pom に直接含まれているものを優先します。

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <scope>provided</scope>
</dependency>
于 2012-02-14T09:56:31.193 に答える
1

2 番目の質問に答えるには、<除外> タグを使用して推移的な依存関係を除外できます: http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>org.apache.axis2</groupId>
      <artifactId>axis2-kernel</artifactId>
      <version>...</version>
      <exclusions>
        <exclusion><!-- declare the exclusion here -->
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
  </dependencies>
</project>
于 2012-02-14T09:27:05.460 に答える
0
  1. 不足している依存関係を追加する方法には、さまざまな解決策があります。たとえば、スコープsystemを使用してパスを指定できます (JAR をプロジェクトに配置して、 に対する相対パスを使用できます${basedir})。

    しかし、はるかに優れた解決策は、NexusArtifactoryなどのサーバーをインストールすることです。これらのサーバーを使用すると、独自のリポジトリを作成でき、インターネットに障害が発生した場合 (たとえば、愚か者がルーターを壊したり、ISP に問題が発生したり、誰かが運転したりした場合) にも機能するためです。繊維の束を通る 18 インチのダブル T スチール ビーム)。

    ダウンロードは地球の半分ではなく、ローカル LAN 経由で行われるため、ビルドも大幅に高速化されます。

  2. POM で依存関係を別のスコープで単純に繰り返すことができます (POM が常に優先されます) か、 elementを使用dependencyManagementできます。

    dependencyManagementすべてのプロジェクトのスコープとバージョンを 1 か所で設定できるため、私はこのアプローチを好みます。

于 2012-02-14T13:22:43.080 に答える