Eclipse项目中的Maven:包javax.ws.rs不存在

时间:2016-11-01 07:05:28

标签: java eclipse web-services maven tomcat

在Eclipse中,当我转到myProject时 - >右键单击 - >运行方式 - > Maven构建,我在控制台中收到多个错误,概述某些包不存在,例如:

--4364:0:aspacem   -1: ANON 0038000000-00383d5fff 4022272 r-x-- SmFixed d=0x000 i=25365   o=0       (0) m=0 /usr/lib/valgrind/memcheck-amd64-linux

--4364:0:aspacem  Valgrind: FATAL: aspacem assertion failed:

--4364:0:aspacem    segment_is_sane

--4364:0:aspacem    at m_aspacemgr/aspacemgr-linux.c:1502 (add_segment)

--4364:0:aspacem  Exiting now.

虽然在我的pom.xml中,我提供了这些依赖项:

javax.ws.rs does not exist
javax.ws.rs.core does not exist
javax.servlet does not exist
javax.servlet.http doest not exist 

下的

<dependency>
   <groupId>javax.ws.rs</groupId>
   <artifactId>javax.ws.rs-api</artifactId>
   <version>2.0.1</version>
</dependency>
<dependency>
   <groupId>javax.ws.rs</groupId>
   <artifactId>javax.ws.rs</artifactId>
   <version>1.0</version>
</dependency>
etc

标签(在pom.xml中没有任何错误)。

我也在settings.xml文件中配置了代理设置,并且此文件已正确链接。

我还将这些jar本地包含在WebContent \ WEB-INF \ lib文件夹中并添加到类路径中(我可以在tomcat上运行我的REST服务,错误&#34;包不存在&#34 ;只有在我尝试使用Maven build&#34;时才会出现。

我需要生成和部署.war文件的原因。

我怎么解决这个问题?是否有一场战争迫使Maven在本地图书馆中寻找呢?

1 个答案:

答案 0 :(得分:2)

如果你有:

<dependencyManagement>
    <dependencies>
        <dependency>
           <groupId>javax.ws.rs</groupId>
           <artifactId>javax.ws.rs-api</artifactId>
           <version>2.0.1</version>
        </dependency>
        <dependency>
           <groupId>javax.ws.rs</groupId>
           <artifactId>javax.ws.rs</artifactId>
           <version>1.0</version>
        </dependency>
    </dependencies>
</dependencyManagement>

然后你需要一个单独的:

<dependencies>
    <dependency>
       <groupId>javax.ws.rs</groupId>
       <artifactId>javax.ws.rs-api</artifactId>
    </dependency>
    <dependency>
       <groupId>javax.ws.rs</groupId>
       <artifactId>javax.ws.rs</artifactId>
    </dependency>
</dependencies>

部分。

通常,您将在父pom.xml文件中定义dependencyManagement,然后在子pom.xml文件中使用第二个dependencies片段。这可确保您的所有模块都依赖于相同的一致工件。