0

これは、「mvn package」コマンドの出力の一部です。

[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ my-project ---
[INFO] Building jar: /Users/sfrazer/projects/my-project/target/my-project-0.0.1.jar
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:single (jar-with-dependencies) @ my-project ---
[INFO] Building jar: /Users/sfrazer/projects/my-project/target/my-project-0.0.1-jar-with-dependencies.jar

2 番目の jar は、ビルドするように指定した正しいものですが、最初の jar が作成されている理由がわかりません。だから私は2つの質問があります:

1) 最初の JAR が作成されるのはなぜですか?

2) 2 番目の JAR に最初の JAR と同じ名前を付けるにはどうすればよいですか?

pom.xml は非常に長いですが、2 番目の JAR を構築するための関連部分は次のとおりです。

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <archive>
      <manifest>
        <mainClass>my.package.App</mainClass>
      </manifest>
    </archive>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
  <executions>
    <execution>
      <id>jar-with-dependencies</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>
4

2 に答える 2

2

jar-with-dependencies の実行は追加の実行として定義されており、通常のパッケージまたはインストールの実行の一部である通常の jar ゴールの置き換えではありません。

一部の人々はこの質問でそれを無効にしようとしましたが、一般的に、maven に含まれるすべての依存関係を含む jar を作成する場合、「通常の jar」はそのままパッケージ化され、そのまま残されます。

于 2012-09-28T20:05:41.583 に答える
2

my-project-0.0.1.jarは、パッケージ化されたプロジェクトのフェーズにmaven-jar-plugin:jar自動的にバインドされるため、作成されます。packagejar

のアーティファクトに依存する他のプロジェクトは、すべての依存関係を含むスーパー jar ではなく、my-projectちょうど の JAR を含めたいため、無効にするのは悪い考えです。my-project

于 2012-09-28T20:05:53.443 に答える