Maven错误:包不存在

时间:2014-12-24 13:44:59

标签: java maven jenkins

我可以在我的本地机器上构建我的java项目,它使用maven成功构建。但是,当我在Jenkins机器上构建它时,我收到编译错误:

  

javax.jms 不存在

这是什么意思?它在哪里寻找 javax.jms ?在本地m2 repo,classpath?

我必须对我的pom.xml进行以下更改才能使其在Linux上运行:

a)明确声明maven-site-plugin版本为2.1。                         org.apache.maven.plugins                 Maven的网站插件                 2.1             

b)将maven-surefire-plugin版本从2.4.3更改为2.18.1                 Maven的万无一失,插件                 2.18.1

c)添加了以下依赖项:

     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
       <version>1.4</version>
     </dependency>

     <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.2</version>
      </dependency>

      <dependency>
            <groupId>com.xx.yyy</groupId>
            <artifactId>jms</artifactId>
            <version>1.1</version>
      </dependency>

      <dependency>
            <groupId>com.xx.yyy</groupId>
            <artifactId>orm</artifactId>
            <version>3.1.0.5</version>
       </dependency>

       <dependency>
            <groupId>org.springframework.ldap</groupId>
            <artifactId>spring-ldap-core</artifactId>
            <version>1.3.0.RELEASE</version>
       </dependency>

为什么我必须在Linux上更改pom.xml。该构建在我的Windows 7机器上运行,无需更改pom.xml。

1 个答案:

答案 0 :(得分:0)

首先,尝试检查Maven是否具有正确的依赖关系来获取javax.jms个包。您可以尝试Apache Geronimo依赖项或JavaEE API。 (参考:What is the right Maven dependency for javax.jms.* classes?

Apache Geronimo

  <dependency>
    <groupId>org.apache.geronimo.specs</groupId>
    <artifactId>geronimo-jms_1.1_spec</artifactId>
    <version>1.1.1</version>
  </dependency>

JavaEE API

   <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>6.0</version>
      <scope>provided</scope>
    </dependency>

另外,请确保您在Jenkins上构建应用程序并实现以下目标:

mvn clean install

Maven计算机上使用Jenkins构建应用程序后,该程序包应显示在m2 repo的本地Jenkins