1

コンパイルされたファイルを別のフォルダーにデプロイするMavenプロジェクトがあります。現在、私はパラメータを指定することによってこれを行っていますaltDeploymentRepository

mvn -DaltDeploymentRepository=snapshot-repo::default::file:/home/user/some/folder/mvn-repo/snapshots deploy

私の質問:代わりに単純なことをして、mvn deploy代わりにパラメーター宣言をpom.xmlに移動することは可能ですか?はいの場合、どのように?

アップデート

なぜこれをしたいのかと聞かれます。プロジェクトをソースとMavenリポジトリを使用してMavenプロジェクトに分割しました。どちらも異なるGithubプロジェクトであるため、異なるフォルダーにあります。ターゲットファイルがリポジトリフォルダーにデプロイされるようにMavenを構成しました。その後、変更をgit add、commit、pushする必要があります。

ターゲットファイルを目的のGithubリポジトリに直接プッシュする方法、maven deployまたはこの手順をより簡単にする方法があれば、私はすべての耳です!

4

3 に答える 3

2

Mavenでの「デプロイ」の意味を実際に理解するためだけに、「他のフォルダーにデプロイ」するのは非常に奇妙です。

Maven Deployは、アーティファクトをリモートリポジトリにデプロイすることを意味します。リモートリポジトリは、Mavenがアーティファクトを検索してローカルリポジトリにダウンロードする場所です。「別のフォルダ」になることはめったにありません。通常<distributionManagement>、デプロイするリモートリポジトリを構成するために使用します。通常altDeploymentRepository、で構成されている別のリモートリポジトリにデプロイしていましたdistrubutionManagement

ビルドしたアーティファクトを「リモートリポジトリ」を対象としない別のフォルダに配置したいだけの場合は、アセンブリ(または同様のプラグイン)が必要だと思います。

于 2013-03-21T03:57:46.353 に答える
1

上記の回答と同様に、ビルドの一部としてターゲットフォルダーの下のファイルシステムリポジトリに最初にデプロイし、次にwagonプラグインを使用してローカル(およびプライベート)ステージングリポジトリを同期することにより、ビルドをデプロイメントから分離することができます。より公開されたリポジトリ。

これが*nixベースであることを前もってお詫びします(を参照pwd

mvn -DaltDeploymentRepository=local-staged-repo::default::file://`pwd`/target/staged-repo \
    clean \
    deploy

または、次のようにpom.xml内にコーディングすることもできます。

<pluginManagement>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.7</version>
    <configuration>
      <altDeploymentRepository>
        staged-repo::default::file:${project.basedir}/target/staged-repo
      </altDeploymentRepository>
    </configuration>
  </plugin>
</pluginManagement>
    ...

その後、プロジェクトのルートフォルダから実行します。次のプラグインを使用して、ルートpom.xmlのターゲットフォルダー内のstaged-repoをより永続的なリポジトリにマージできます。

mvn org.codehaus.mojo:wagon-maven-plugin:1.0-beta-5:merge-maven-repos \
  -Dwagon.source=file://`pwd`/target/staged-repo \ 
  -Dwagon.target=http://<some-repo>/release \
  -Djava.io.tmpdir=/tmp 
于 2014-05-14T14:52:59.070 に答える
0

わかりました、それは予想よりも簡単でした。プラグインに構成ブロックを追加する必要がありました。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <altDeploymentRepository>
                  snapshot-repo::default::file:/home/user/some/folder/mvn-repo/snapshots
                </altDeploymentRepository>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.google.code.maven-svn-wagon</groupId>
                    <artifactId>maven-svn-wagon</artifactId>
                    <version>1.4</version>
                </dependency>
            </dependencies>
        </plugin>
于 2013-03-21T00:16:00.210 に答える