13

ファイルだけで構成されるプロジェクトがあります。これらのファイルを zip にパッケージ化し、maven リポジトリに保存したいと考えています。zip ファイルをビルドするように構成されたアセンブリ プラグインがあり、その部分は問題なく動作しますが、zip ファイルのインストール方法がわかりません。

また、このアセンブリを別のアーティファクトで使用したい場合、どうすればよいですか? dependency:unpack を呼び出すつもりですが、アンパックするアーティファクトがリポジトリにありません。

別のアーティファクトで再利用できるように、zip ファイルをリポジトリに入れるにはどうすればよいですか?

親ポン

<build>
        <plugins>
            <plugin>
                <!--<groupId>org.apache.maven.plugins</groupId>-->
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2-beta-5</version>
                <configuration>
                    <filters>
                        <filter></filter>
                    </filters>
                    <descriptors>
                        <descriptor>../packaging.xml</descriptor>
                    </descriptors>
                </configuration>
            </plugin>
        </plugins>
    </build>

子POM

<parent>
    <groupId>com. ... .virtualHost</groupId>
    <artifactId>pom</artifactId>
    <version>0.0.1</version>
    <relativePath>../pom.xml</relativePath>
</parent>

<name>Virtual Host - ***</name>
<groupId>com. ... .virtualHost</groupId>
<artifactId>***</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>

名前をフィルタリングしました。このPOMは正しいですか?特定の仮想ホストのファイルを一緒にバンドルしたいだけです。

ありがとう、

ウォルター

4

3 に答える 3

17

zip ファイルをビルドするように構成されたアセンブリ プラグインがあり、その部分は問題なく動作しますが、zip ファイルのインストール方法がわかりません。

作成されたアセンブリは自動的にプロジェクトにアタッチされ、目的のリポジトリにアップロードされinstallますdeploy。あなたのポンを見せてもらえますか?

更新:現在の構成では、アセンブリがビルドの一部として作成されるとは思いません。single目標をライフサイクル フェーズにバインドする必要があります。通常は次のpackageとおりです。

  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
    <configuration>
      <descriptors>
        <descriptor>../packaging.xml</descriptor>
      </descriptors>
    </configuration>
    <executions>
      <execution>
        <id>make-assembly</id> <!-- this is used for inheritance merges -->
        <phase>package</phase> <!-- append to the packaging phase. -->
        <goals>
          <goal>single</goal> <!-- goals == mojos -->
        </goals>
      </execution>
    </executions>
  </plugin>

これで、適切にインストール/展開されるはずです。

また、このアセンブリを別のアーティファクトで使用したい場合、どうすればよいですか? dependency:unpack を呼び出すつもりですが、アンパックするアーティファクトがリポジトリにありません。

アセンブリへの依存関係を宣言することはできますが (右のclassifierandを使用してtype)、依存関係はリポジトリを通じて解決されるため、最初のステップを最初に解決する必要があります。次に、次のように宣言します (分類子はアセンブリの ID です)。

<dependency>
  <groupId>com. ... .virtualHost</groupId>
  <artifactId>***</artifactId>
  <version>0.0.1</version>
  <classifier>...</classifier>
  <type>zip</type>
</dependency>
于 2010-04-14T17:43:23.480 に答える
1

アセンブリはビルドに自動的にアタッチされるはずですが、それが機能しない場合、Maven Build Helper の「attach-artifact」ゴールは、指定されたファイルをアタッチしてリポジトリにインストールします。このプラグインを使用して、Ant や NSIS などの外部プロセスによって作成されたファイルをインストールしました。

于 2010-04-14T17:45:21.857 に答える
0

src/main/resourcesこれが役に立つかどうかはわかりませんが、JAR ファイルは基本的に ZIP ファイルに META-INF 情報を加えたものであるため、プロジェクトをソースなしの jar として作成し、プラグインを必要とせずに xip カウントを追加できます。構成。

コンテンツを別の場所に置きたい場合は、いつでも次のようにすることができます。

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.myzip</groupId>
  <artifactId>myzip-artifact-id</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <build>
    <resources>
      <resource>
        <targetPath>.</targetPath>
        <filtering>false</filtering>
        <directory>${basedir}/zipcontent</directory>
        <includes>
          <include>**/*</include>
        </includes>
      </resource>
    </resources>
  </build>
</project>

アーティファクトをインストールしてリポジトリにアクセスできるようにする場合は、デプロイ フェーズ用に設定する必要があります。

http://maven.apache.org/plugins/maven-deploy-plugin/usage.html

于 2010-04-14T17:45:16.213 に答える