1

サブモジュールを持つmavenプロジェクトがあります:

/pom.xml
/child1/pom.xml
/child2.pom.xml

「maven パッケージ」を実行すると、/target/foo.jar が作成されます。良い。

「maven rpm:rpm」を実行すると、ビルドが失敗します。これは、子の 1 つをビルドしようとすると、次のように表示されるためです。

[ERROR] Failed to execute goal 
org.codehaus.mojo:rpm-maven-plugin:2.1-alpha-3:attached-rpm (default-cli)
on project child1: Source location target/foo.jar does not exist

子プロジェクトで rpm を実行したくありません。親にアーティファクトを回転させたいだけです。

ドキュメントには次のように記載されています。

If this goal is run on a project with modules, 
it will run the "rpm:rpm" goal on each module, rather than packaging 
the modules into a single RPM.

これを回避する方法はありますか?「mvn パッケージ」を実行するときに rpm を作成することはできません。これは、ほとんどの人がここで開発する Mac では機能しないためです。rpm は、「mvn rpm:rpm」を実行するときにのみ作成する必要があります。同様のコマンド。

親ポンは次のとおりです。

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>rpm-maven-plugin</artifactId>
  <configuration>
    <name>analytics-reporting</name>
    <group>rpm</group>
    <targetVendor>amazon</targetVendor>
    <targetOS>Linux</targetOS>
    <filemode>644</filemode>
    <username>root</username>
    <groupname>root</groupname>
    <copyright>LGPL</copyright>
    <version>${rpm.version}</version>
    <release>${rpm.release}</release>
    <mappings>
      <mapping>
        <directory>/opt/inin</directory>
        <sources>
          <source>
            <location>target/analytics-reporting-engine.jar</location>
          </source>
        </sources>
      </mapping>
    </mappings>
  </configuration>
</plugin>

これが子供です:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>rpm-maven-plugin</artifactId>
  <executions>
    <execution>
      <phase>none</phase>
    </execution>
  </executions>
</plugin>
4

2 に答える 2

0

プラグインの実行では、次のようにプラグインを継承しないように指定する必要があります。

<executions>
  <execution>
    <inherited>false</inherited>
    <id>attach-rpm</id>
    <goals>
      <goal>attached-rpm</goal>
    </goals>
  </execution>
</executions>
于 2014-06-24T16:12:21.920 に答える