9

カスタム Maven wagon 拡張機能を使用して、自分のリポジトリに jar をデプロイしようとしています。特定のワゴンで使用されるカスタム url スキームを認識するように settings.xml で何らかの方法で構成できますか、またはワゴン拡張子を含むように常に pom ファイルを変更する必要がありますか?


deploy-file を使用する場合、ベース pom や利用可能な pom は必要ありません。Settings.xml はそこにあることが保証されている唯一の場所ですが、それを使用して拡張機能を定義する方法がわかりません。

4

4 に答える 4

5

Brian Fox による上記のコメントが 2013 年にまだ有効かどうかはわかりません。

コマンドラインで deploy-file ゴールにそれらを提供したにもかかわらず、Maven が文句を言わないように、groupId、artifactId、および version を pom.xml に追加する必要がありました (ただし、deploy-file はコマンドライン パラメーターのみを気にするでしょう)。

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
<groupId>your-groupId</groupId>
<artifactId>your-artifactId</artifactId>
<version>your-version</version>
<build>
  <extensions>
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-ssh</artifactId>
      <version>2.4</version>
    </extension>
  </extensions>
</build>
</project>

この単純な「pom.xml」を配置すると、最終的に scp をプロトコルとして使用して deploy-file を実行できます。

mvn deploy:deploy-file -Durl=scp://shell.sourceforge.net:/home/project-web/... -DrepositoryId=repoId -Dfile=my-file.jar -DgroupId=your-groupId -DartifactId=your-artifactId -Dversion=your-version -Dpackaging=jar
于 2013-05-12T23:51:58.610 に答える
2

wagon 拡張機能を最上位の pom.xmlに追加する必要があります。ほとんどの環境では、すべてのプロジェクト (ベスト プラクティス) の最上位に企業の環境があるため、これは通常、個々の開発者にとってそれほど苦痛ではありません。企業の pom から継承するだけです。

<build>
  <extensions>
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-scm</artifactId>
      <version>1.0-alpha-7-SNAPSHOT</version>
    </extension>
    <extension>
      <groupId>org.apache.maven.scm</groupId>
      <artifactId>maven-scm-manager-plexus</artifactId>
      <version>1.0-beta-3-SNAPSHOT</version>
    </extension>
    <extension>
      <groupId>org.apache.maven.scm</groupId>
      <artifactId>maven-scm-provider-svnexe</artifactId>
      <version>1.0-beta-3-SNAPSHOT</version>
    </extension>
  </extensions>
</build>
<distributionManagement>
  <site>
    <id>my.svn.server</id>
    <url>scm:svn:https://username@svn.apache.org/svn/root/module</url>
  </site>
</distributionManagement>

プロバイダーを登録すると、プロトコルパターンも登録されると思います。既存のプロバイダーの完全なリストは、こちらで確認できます。

拡張機能を登録するのは getScmType() メソッドだと思いますが、100% 確実ではありません。

/** {@inheritDoc} */
public String getScmType()
{
    return "git";
}

Git プロバイダーのソースへのリンクは、こちらにあります。

于 2009-03-06T14:52:03.820 に答える
2

siddhadevは正しいですが、追加のものはほとんどありません...(これをコメントに入れますが、十分な評判がありません)

$M2_HOME/lib/ext の下に置くことで、JAR をきれいに分離しておくことができます。

すべての依存関係が必要なので、次のようにします。

  1. cd ~/.m2/repository/org/apache/maven/wagon/wagon-ssh-external/2.2
  2. cp wagon-ssh-external-2.2.jar $M2_HOME/lib/ext
  3. cp wagon-ssh-external-2.2.pom pom.xml
  4. mvn 依存関係:copy-dependencies -DoutputDirectory=$M2_HOME/lib/ext
于 2012-05-11T19:14:22.707 に答える