Mac 10.6.6でMaven 3.0.3を使用しています。 JARプロジェクトがあり、コマンド「mvn clean install:install」を実行すると、エラーが発生します。
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-install-plugin:2.3.1:install (default-cli) on project StarTeamCollisionUtil: The packaging for this project did not assign a file to the build artifact -> [Help 1]
これはどういう意味ですか、どうすれば修正できますか?以下はpom.xmlです。他に役立つ情報を教えてください。この投稿を編集します。ありがとう、-デイブ
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>com.myco.starteam.util</groupId>
<artifactId>StarTeamCollisionUtil</artifactId>
<packaging>jar</packaging>
<name>StarTeam Collision Util</name>
<description>
The StarTeam Collision Utility provides developers and release engineers alike the ability to
compare files attached to a set of CRs to see if conflicts exist in the change set.
</description>
<version>1.0-SNAPSHOT</version>
<url>http://cm-build.myco.com:8080/hudson/view/Tools/job/StarTeamCollisionUtil - TRUNK/</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>myco-sonatype-nexus-snapshots</id>
<name>MyCo Sonatype-Nexus Snapshots</name>
<url>http://sonatype.myco.com/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>starteam</groupId>
<artifactId>starteam</artifactId>
<version>1.1.0</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${basedir}/lib/starteam110.jar</systemPath>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
</dependency>
<dependency>
<groupId>org.Apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0-beta-3</version>
<configuration>
<reportPlugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<configuration>
<linksource>true</linksource>
</configuration>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>1.2</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.3.1</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>dependencies</report>
<report>dependency-management</report>
<report>cim</report>
<report>issue-tracking</report>
<report>license</report>
<report>scm</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>sonatype-nexus</id>
<url>http://sonatype.myco.com/nexus/content/repositories/snapshots/</url>
</repository>
</distributionManagement>
<scm>
<url>https://starteam.cmass.myco.com/BorlandStarTeam/BorlandStarTeam.jsp</url>
</scm>
<issueManagement>
<system>StarTeam</system>
<url>https://starteam.cmass.myco.com/BorlandStarTeam/BorlandStarTeam.jsp</url>
</issueManagement>
<ciManagement>
<system>Hudson</system>
<url>http://cm-build.myco.com:8080/hudson/</url>
</ciManagement>
</project>
これが答えかどうかわかりませんが、正しい方向に導くかもしれません...
コマンド install:install
は、実際には maven-install-plugin の目標です。これは、install
mavenライフサイクルフェーズとは異なります。
Mavenライフサイクルフェーズ は、特定のプラグインがバインドできるビルドのステップです。単一のライフサイクルフェーズを呼び出すと、さまざまなプラグインのさまざまな目標が実行される場合があります。
要約すると、コマンドは...
mvn clean install
とは異なります...
mvn clean install:install
前者は、インストール(コンパイル、パッケージ、テストなど)に至るまでのすべてのサイクルですべての目標を実行します。後者はコードをコンパイルしたりパッケージ化することさえせず、その1つの目標を実行するだけです。例外を見て、この種は理にかなっています。それについて話します:
StarTeamCollisionUtil:このプロジェクトのパッケージは、ビルドアーティファクトにファイルを割り当てませんでした
前者を試してみると、エラーがなくなるかもしれません!
TL; DRこの問題を解決するには、パッケージングプラグインを起動します。 jar
パッケージの場合は、次のようにmaven-jar-plugin
を使用します。
mvn jar:jar install:install
または
mvn jar:jar deploy:deploy
実際に展開する必要がある場合。
Gotcha異なるパッケージ(ear/war/jar/Zip)を持つマルチモジュールプロジェクトがある場合、このアプローチは機能しません-さらに悪いことに、誤ったアーティファクトインストール/デプロイされます!そのような場合、リアクターオプションを使用して、デプロイ可能なモジュール(war
など)のみをビルドします。
説明
場合によっては、実際にinstall:install
またはdeploy:deploy
ゴールを直接実行したい(つまり、Maven deploy
ではなく、maven-deploy-plugin
、deploy
ゴールから phase )、迷惑なThe packaging for this project did not assign a file to the build artifact
になってしまいます。
典型的な例は、CIジョブ(たとえば、JenkinsやBambooのジョブ)です。ここでは、さまざまなステップでさまざまな側面を実行/ケアしたいと考えています。
mvn clean install
です。mvn sonar:sonar
とその他のオプションmvn deploy
を再実行する必要はありません。テストなど)、ビルドは効果的であるが、まだfastである必要があります。はい、少なくともテストをスキップする(コンパイルと実行、 -Dmaven.test.skip=true
を介して)この最後のステップを高速化するか、特定のプロファイルで再生する(できるだけ多くのプラグインをスキップする)ことができますが、単純にmvn deploy:deploy
を実行することをクリアします。
ただし、 プラグインFAQによる :も指定されているため、上記のエラーで失敗します。
パッケージング段階では、すべてが収集され、コンテキストに配置されます。このメカニズムにより、Mavenは
maven-install-plugin
およびmaven-deploy-plugin
が同じファイルセットをコピー/アップロードしていることを確認できます。したがって、deploy:deploy
のみを実行すると、コンテキストにファイルが配置されず、デプロイするものもありません。
実際、deploy:deploy
には、以前のフェーズ(または以前のプラグイン/目標の実行)によってビルドコンテキストに配置されたランタイム情報が必要です。
また、潜在的なバグとして報告されています:MDEPLOY-158
:deploy:deployは、アーティファクトをMavenリモートリポジトリにデプロイする場合のみ機能しません
しかし、その後、問題ではないと拒否されました。
maven-deploy-plugin
の deployAtEnd
構成オプションは、実行する中間ジョブステップがあるため、特定のシナリオではどちらにも役立ちません。
すべてのプロジェクトを独自の展開段階で展開するか、マルチモジュールビルドの最後に展開するか。
true
に設定してビルドが失敗した場合、どのリアクタプロジェクトもデプロイされません。 (実験的)
だから、それを修正する方法は?
このような同様の3番目/最後のステップで、以下を単純に実行します。
mvn jar:jar deploy:deploy
maven-jar-plugin
は、デフォルトでforceCreation
に設定されている false
オプションのおかげで、ビルドの一部としてjarを再作成しません。
内容が変更されていないように見える場合でも、jarプラグインを使用して新しいJARを作成する必要があります。デフォルトでは、このプラグインは出力jarが存在し、入力が変更されていないかどうかを確認します。これらの条件に該当する場合、プラグインはjarの作成をスキップします。
しかし、ビルドコンテキストを適切に設定し、deploy:deploy
を幸せにします。スキップするテスト、追加するプロファイルはありません。必要なのはスピードだけです。
追記:build-helper-maven-plugin
、buildnumber-maven-plugin
、または他の同様のプラグインを使用して、後でmaven-jar-plugin
が使用するメタデータ(マニフェストファイルのエントリなど)を生成する場合、おそらくvalidate
フェーズにリンクされた実行があります。 jar:jar
ビルドステップ中にそれらを保持します(しかも高速実行を維持します)。この場合、ほとんど無害なオーバーヘッドは、次のようにvalidate
phase を呼び出すことです。
mvn validate jar:jar deploy:deploy
さらに別の注記:jar
ではなく、たとえばwar
パッケージ化を使用している場合は、インストール/デプロイの前にwar:war
を使用してください。
Gotcha上記で指摘したように、マルチモジュールプロジェクトの動作を確認してください。
この回答は、この問題に直面している他の人を助けるための非常に古い質問に関するものです。
Java
プロジェクトで作業中にこのエラーに直面しました IntelliJ IDEA
IDE。
Failed to execute goal org.Apache.maven.plugins:maven-install-plugin:2.4:install (default-cli) on project getpassword: The packaging for this project did not assign a file to the build artifact
下の画像の赤い矢印で示されているように、install:install
の下でPlugins - install
を選択すると、これは失敗します。
上記のように選択したinstall
をLifecycle
の下で実行すると、問題はなくなり、Mavenインストールコンパイルが正常にビルドされます。
同じ問題があります。私のためのエラーメッセージは完全ではありません。しかし、私の場合、ソースを含む生成jarを追加しました。このコードをpom.xmlに配置することにより:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
したがって、デプロイフェーズでは、ソースを含むjarを生成するsource:jarゴールを実行します。そして、ビルドはBUILD SUCCESSで終了します
jarなどのターゲットファイルをクリアする必要があります。C:.m2でフォルダーをドライブし、.jarファイル、Snaphotファイルをインストールおよび削除する場所を確認し、ターゲットファイルを削除してから、実行されるアプリケーションを削除します。
私は同じ問題を抱えていましたが、最初にmvn installを実行しました(前述のinstall:installではありません)。
解決策は次のとおりです。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
プラグイン管理セクションへ。
このエラーは、maven-install-pluginバージョン3.0.0-M1(または同様の)を使用すると表示されます
すでに上記で説明したように、ここでも次のプラグインバージョンが機能します。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>