我正在尝试使用eclipse在我自己的一个小项目上学习maven。我将现有项目转换为maven标准目录配置,并且正在构建;现在我正在尝试让maven为应用程序生成jar。以下是pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion> 4.0.0 </modelVersion>
<groupId> com.rc </groupId>
<artifactId> SpaceCheck </artifactId>
<version> 0.9.1-SNAPSHOT </version>
<name> SpaceCheck </name>
<packaging> jar </packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId> org.apache.maven.plugins </groupId>
<artifactId>maven-jar-plugin </artifactId>
<version> 2.3.2 </version>
<configuration>
<includes>**/src/*</includes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>spacecheck.SpaceCheck</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
我没有使用'includes'条款;就像我所知道的那样,这就是我所指示的例子告诉我要解决这个问题。它没有。
当我尝试构建时,我得到:
[错误]无法执行目标 org.apache.maven.plugins:maven-jar-plugin:2.3.2:jar(default-jar)on 项目SpaceCheck:无法解析mojo的配置 org.apache.maven.plugins:maven-jar-plugin:2.3.2:jar参数 包括:无法为配置条目'includes'分配值 类型为java.lang.String的'* / src / '属性 java.lang.String [] - &gt; [帮助1]
“帮助1”链接指向我所遵循的教程。
我在教程中遇到的问题是它没有解释工作原理 - 它给出了一个示例,并希望您从示例中提取一般工作。示例没有任何问题,但它们很少与人们想要做的完全匹配。
我相信很多人都可以告诉我什么是错的,我会很感激。但如果他们能够告诉我这里的解释,那将会更好,而不仅仅是在哪里有一个类似的例子。完整的解释将解释需要添加什么元素,XML的位置,以及那里的各种选项。
答案 0 :(得分:12)
而不是
<includes>**/src/*</includes>
试
<includes>
<include>**/src/*</include>
</includes>
如果你正在学习Maven,你肯定想看看The Complete Reference。
答案 1 :(得分:3)
由于您要求提供文档(而非直接答案),请查看http://maven.apache.org/guides/mini/guide-configuring-plugins.html
答案 2 :(得分:0)
问题是Maven版本
maven 3.3.9
及更高版本支持列表/集合的以下格式,但在较低版本中不支持。
<includes>**/src/*</includes>
但是在小于3.3.9
的Maven版本中,不支持以上版本
要进行修复,使其向后兼容
<includes>
<include>**/src/*</include>
</includes>
PS:有关更多详细信息,请检查this链接