运行Maven Assembly插件创建的JAR时出错

时间:2014-04-07 07:14:52

标签: java eclipse spring hibernate maven-assembly-plugin

我正在研究Eclipse / Spring / Maven项目。我的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.javacodegeeks.snippets.enterprise</groupId>
  <artifactId>springexample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <build>
    <plugins>
     <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>package-jar-with-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <appendAssemblyId>false</appendAssemblyId>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                            <archive>
                                <manifest>
                                    <mainClass>com.javacodegeeks.snippets.enterprise.App2</mainClass>
                                </manifest>
                            </archive>
                            <resources>
                                  <resource>
                              <directory>src/main/resources</directory>
                              <filtering>true</filtering>
                                  </resource>
                          </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
</plugins>


              </build>        
          <dependencies>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-core</artifactId>
              <version> 3.2.4.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>com.rapplogic</groupId>
                  <artifactId>xbee-api</artifactId>
                  <version> 0.9</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-context</artifactId>
                  <version>3.2.4.RELEASE</version>
              </dependency>

              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-orm</artifactId>
                  <version>3.2.4.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>commons-dbcp</groupId>
          <artifactId>commons-dbcp</artifactId>
          <version>1.2.2</version>
      </dependency>
      <dependency>
          <groupId>javax.persistence</groupId>
          <artifactId>persistence-api</artifactId>
          <version>1.0</version>
      </dependency>
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.6</version>
      </dependency>
        <dependency>
            <groupId>jfreechart</groupId>
            <artifactId>jfreechart</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>jcommon</groupId>
            <artifactId>jcommon</artifactId>
            <version>0.9.5</version>
        </dependency>
        <dependency>
            <groupId>org.graphstream</groupId>
            <artifactId>gs-core</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.graphstream</groupId>
            <artifactId>gs-ui</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.graphstream</groupId>
            <artifactId>gs-algo</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
      </dependency>
      <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-core</artifactId>
          <version>4.1.9.Final</version>
      </dependency>           
      <dependency>
          <groupId>org.rxtx</groupId>
          <artifactId>rxtx</artifactId>
          <version>2.1.7</version>
      </dependency>
        <dependency>
            <groupId>org.bidib.jbidib.org.qbang.rxtx</groupId>
            <artifactId>rxtxcomm</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>4.0.0.RELEASE</version>
      </dependency>
    </dependencies>
</project>

我的applicationContext.xml如下所示:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd"> 
.
.
.

mvn install然后mvn package。我在项目的目标目录中得到springexample-0.0.1-SNAPSHOT.jar的输出。然后我输入命令java - jar springexample-0.0.1-SNAPSHOT.jar并得到以下错误:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Config
uration problem: Unable to locate Spring NamespaceHandler for XML schema namespa
ce [http://www.springframework.org/schema/tx]
Offending resource: class path resource [applicationContext.xml]
通过互联网上的类似问题,我发现了两个可能的错误来源:

  1. 未指定用于命名空间处理的spring库(spring-tx) - 已完成(包含在依赖项中) 2.在maven程序集插件的资源中没有指定applicationContext.xml - 已完成(插件配置中包含的资源标记)。
  2. 之后,我不知道会出现什么问题。任何帮助表示感谢,谢谢。

1 个答案:

答案 0 :(得分:0)

尝试添加此项,而不是4.0.0.RELEASE:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version> 3.2.4.RELEASE</version>
</dependency>

然后执行mvn clean install