5

次のスニペットをプロジェクトオブジェクトモデルに含めます

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.1.2</version>
  </plugin>

maven.apache.orgによると、プラグインはjarゴールをパッケージフェーズにアタッチします。ただし、「mvn clean; mvn package」を実行しても、ターゲットディレクトリにproject-sources.jarは生成されません。

編集:おそらく私は引用したウェブサイトからのコメントを理解していません:「[source:jargoal]デフォルトでライフサイクルフェーズにバインドします:パッケージ」。上記のようにプラグインセクションを含めると、mavenはすでにsource:jarゴールをパッケージフェーズにバインドしていると思いました。私はここで間違えていますか?コメントはどういう意味ですか?

matthias。

4

3 に答える 3

5

ドキュメントは少し誤解を招く可能性があります。プラグインにはパッケージのデフォルトの実行フェーズがありますが、デフォルトの目標はありません。プラグインが機能するためには、目標を指定していると思います。

于 2012-07-24T13:54:39.683 に答える
1

プラグインをソースjarを生成するには、プラグインをMavenライフサイクルの目標にバインドする必要があります。それ以外の場合は、明示的に呼び出す必要がありますmvn source:jar

ここに記載されているように、それをjar目標にバインドすることができます。

于 2012-07-24T10:53:09.463 に答える
1

これを試して:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.1.2</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

jar-no-fork次に、ライフサイクルのフェーズへの目標のデフォルトのバインディングを使用します。これはpackageおそらくここで必要なものです。

于 2012-07-24T11:24:08.143 に答える