0

mvn install:install-fileコンパイルフェーズの前に相当するものを実行する方法。lib/foo-1.0.0.jarMavenリポジトリに存在しないファイルがあります。そのため、mvn install:install-fileを使用して手動でインストールし、コンパイルフェーズ中に依存関係としてこれを配置します。ただし、ファイルがローカルリポジトリにインストールされていない場合は、コンパイルエラーで失敗します。コンパイル前にこれを自動的にインストールするようにMavenに指示するにはどうすればよいですか?

4

2 に答える 2

2

システム依存スコープを使用する

<dependency>
  <groupId>com.company.groupId</groupId>
  <artifactId>foo</artifactId>
  <version>1.0.0</version>
  <scope>system</scope>
  <systemPath>${basedir}/lib/foo-1.0.0.jar</systemPath>
</dependency> 

${basedir}-あなたのpom.xml
編集
のディレクトリであり、あなた も使用することができますbuild-helper-maven-plugin

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
              <artifacts>
                <artifact>
                  <file>${basedir}/lib/foo-1.0.0.jar</file>
                  <type>jar</type>
                  <classifier>optional</classifier>
                </artifact>
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>
于 2012-08-22T19:01:27.613 に答える
1

Nexusなどの全社的なMavenプロキシをインストールし、そこにアーティファクトを配置します。settings.xml各開発者は、そのプロキシを指すように変更する必要があります。jarをバージョン管理にチェックインすることは、特に分散SCMに移行する場合は、一般的に悪い考えです。

于 2012-08-23T08:09:18.597 に答える