2

我有一个非标准配置的 Maven 项目:

$> tree                                                                                          
.
├── pom.xml
├── symbolic-link-to-sources -> ../src
└── target
    ├── maven-archiver
    │   └── pom.properties
    ├── project-1.0-SNAPSHOT-sources.jar
    ├── project-1.0-SNAPSHOT.jar
    └── surefire

我正在尝试生成此 maven 模块的源 jar,其源位于 ../src 中。在插件不接受路径中的父文件夹的情况下,我创建了一个指向 ../src 的符号链接。为此,我使用配置如下的 Maven 源插件:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-source-plugin</artifactId>
  <version>2.2.1</version>
  <configuration>
    <includePom>true</includePom>
    <includes>
      <include>symbolic-link-to-sources/**</include>
    </includes>
  </configuration>
</plugin>

我用mvn source:jar. 不幸的是,我的源 jar 中只有 pom.xml。如果我将 includePom 设置为 false,则插件不会创建源存档。

我尝试了很多东西,例如:、、、、、,<include>它们都没有将我的资源放入我的资源 jar中。尽管有关它的文档说它是一个相对的文件集模式。../src../src/**../**symbolic-link-to-sourcessymbolic-link-to-sources/**../**/*.java

知道如何将 ../src 文件夹的 java 文件的内容放入我的源 jar 中吗?

(是的,我的符号链接没有损坏,没有办法重新排列我的模块以具有标准的文件夹层次结构,这是一个围绕基于 ant 的项目的包装器项目)。

4

2 回答 2

0

您将使用该<includes属性来指定要包含源文件夹中的文件/模式。

您是否设置<sourceDirectory>了正确的源位置(符号链接等)?如果是这样,你可以省略上面的整个插件配置,只mvn source:jar在 pom 上运行吗?它应该正确生成源。

于 2013-02-28T08:15:59.733 回答
0

卡住了同样的问题,经过谷歌搜索和尝试终于得出了这个结论:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>add-source</goal>
      </goals>
      <configuration>
        <sources>
          <source>../common/src/main/java</source>
        </sources>
      </configuration>
    </execution>
  </executions>
</plugin>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-source-plugin</artifactId>
  <executions>
    <execution>
      <id>attach-sources</id>
      <goals>
        <goal>jar</goal>
      </goals>
    </execution>
  </executions>
</plugin>

其中“../common/src/main/java”是指向在当前项目中作为符号链接链接的源的路径。

请注意 build-helper-maven-plugin 有 package phase。使用阶段生成源,我得到了“重复类”,因为从符号链接目录和 build-helper-maven-plugin 中配置的目录添加了相同的源。

于 2019-04-26T12:09:24.887 回答