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。

编辑:可能我不明白来自网站的评论,我引用了:“[来源:jar 目标] 默认绑定到生命周期阶段:包。” 我预计,当我包含如上所示的插件部分时,maven 已经将 source:jar 目标绑定到包阶段。我在这里误会了吗?评论是什么意思?

马蒂亚斯。

4

3 回答 3

5

该文档有点误导。该插件具有包的默认执行阶段,但没有默认目标。我相信您已经指定了一个目标以使插件正常工作。

于 2012-07-24T13:54:39.683 回答
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 回答
1

您需要将插件绑定到一个 Maven 生命周期目标,以便它生成源 jar。否则,您需要显式调用它mvn source:jar

如此所述,您可以将其绑定到jar目标。

于 2012-07-24T10:53:09.463 回答