学习Maven:jar插件“无法解析配置”

时间:2013-12-22 23:20:53

标签: java eclipse maven jar

我正在尝试使用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的位置,以及那里的各种选项。

3 个答案:

答案 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链接