我正在使用maven源代码插件来打包项目的源代码。通常,您可以将主/java和main/资源打包到一个根中。
我想要的是将项目结构保留在最后的类似-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它是真正的“找到的静态表达式”错误还是配置不正确?或者还有其他方法来实现这一点呢?
编辑
因此,当更改POM时,如@carlspring提示中所示,错误就消失了,但是结果是,生成的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-叉的输入目录是src/main/java\WAY资源,那么我的问题必须回答,而不是。
发布于 2014-09-17 10:08:08
您使用的<includes/>不正确。这不是逗号分隔的列表。每个条目都应该定义为它自己的<include/>。试着这样做:
<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/resources/**</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>此外,我实际上建议您使用maven-assembly-plugin,并使用它创建源代码,因为在我看来,这样做要容易得多。看看这里。
https://stackoverflow.com/questions/25885016
复制相似问题