我正在使用 maven-source-plugin 来打包项目的源代码。通常,您将所有来自 main/java 和 main/resources 打包到一个根目录中。
我想要的是将项目结构保留在最终的 -source.jar 中src/main/java/**
,src/main/resources/**
以及测试部分。
我尝试了没有帮助的包含配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>
<includes>src/main/**, src/resources/**</includes>
</configuration>
</execution>
</executions>
</plugin>
我得到的错误是
[INFO] Failed to configure plugin parameters for: org.apache.maven.plugins:maven-source-plugin:2.3
(found static expression: 'src/main/**, src/resources/**' which may act as a default value).
Cause: Cannot assign configuration entry 'includes' to 'class [Ljava.lang.String;' from 'src/main/**, src/resources/**', which is of type class java.lang.String
真的是“找到静态表达式”错误还是配置不正确?还是有另一种方法可以实现这一目标?
编辑
因此,当按照@carlspring 的提示更改 POM 时,错误消失了,但结果是生成的 sources.jar 中既没有源文件也没有资源文件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>
<includes>
<include>src/main/**</include>
<include>src/test/**</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
也许线索在包含选项的描述中:
要包含的文件列表。指定为文件集模式,这些模式与将其内容打包到 JAR 中的输入目录相关。
这意味着如果jar-no-fork的输入目录是 src/main/java|resources 那么我的问题必须回答NO WAY