1

私のmaven pomには、デプロイ可能なものに含めたい追加のjarファイルがあります。私はjarファイルの構築に成功しました。そして、次のようにmaven-deploy-pluginを使用すると考えました(バージョンに関しては、依存関係管理から2.8.2を使用しています):

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-deploy-plugin</artifactId>
      <executions>
        <execution>
          <id>deploy-special-jar</id>
          <phase>deploy</phase>
          <goals>
            <goal>deploy-file</goal>
          </goals>
          <configuration>
            <repositoryId>${project.distributionManagement.repository.id}</repositoryId>
            <url>${project.distributionManagement.repository.url}</url>
            <groupId>${project.groupId}</groupId>
            <artifactId>${project.artifactId}</artifactId>
            <version>${project.version}-special</version>
            <file>${project.build.directory}/special.jar</file>
          </configuration>
        </execution>
      </executions>
    </plugin>

これはうまく機能しますが、わずかな問題があります。お気づきのとおり、上記の pom は、repositoryId パラメーターと url パラメーターの両方に project.distributionManagement.repository.url を使用しています。ただし、これは、ビルドするのがスナップショットかリリース バージョンかに関係なく、常にリリース エリアにデプロイすることを意味し、これは理想的ではありません。スナップショットを作成している場合はどうなりますか? まあ、答えは project.distributionManagement.repository.url を project.distributionManagement.snapshotRepository.url に変更することのようです

これらの行を手動で変更するという考えは好きではありません。maven-release-plugin を使用してスナップショット バージョンとリリース バージョンを切り替えるのが好きだからです。ここで、これらの行を毎回変更するスクリプトを追加する必要があります。それは可能ですが、理想的ではありません。

誰かが 2008 年にこの正確な問題について尋ねたようですが、実際には良い答えはありませんでした: http://maven.40175.n5.nabble.com/problems-with-the-maven-deploy-plugin- td107307.html そこで、ここに追加して、人々が何を考え出したかを確認しようと思いました。

build-helper プラグインを使用してこのプロパティを動的に変更することを検討していますが、特に誰かが以前に似たようなことを試みたので (他の理由で、概念は似ています) 、Maven かどうかを確認してください。 pomはSNAPSHOTです

それで、ここで正しい答えは何ですか?これは機能要求であるべきですか? または、人々が使用するこの問題を回避する簡単な方法はありますか? 他の人が何をしたのか興味があります。build-helper プラグインで運が良かった人はいますか?

ありがとうございました!

4

1 に答える 1

0

これは、maven-jar-plugin の 2 回目の実行 (物を削除した後) のように聞こえます。これにより、mvn deployそのような奇妙なことを行う必要がなくなり、自動アップロードが行われます...

または、補助アーティファクト(1つ以上)を作成するmaven-assembly-pluginを使用している可能性があります...またはmaven-shade-pluginかもしれません。どうやって物を取り除いているのかわからない...

于 2015-03-10T18:23:09.670 に答える