GVKun编程网logo

Eclipse项目中的Maven:软件包javax.ws.rs不存在(eclipse里没有maven)

7

如果您对Eclipse项目中的Maven:软件包javax.ws.rs不存在和eclipse里没有maven感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Eclipse项目中的Maven:软件

如果您对Eclipse项目中的Maven:软件包javax.ws.rs不存在eclipse里没有maven感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Eclipse项目中的Maven:软件包javax.ws.rs不存在的各种细节,并对eclipse里没有maven进行深入的分析,此外还有关于eclipse maven 构建web项目,测试包和测试资源包不存在创建、eclipse 中Maven项目 的maven install 、build 、clean、Eclipse 如何解决 JavaEE 项目中 javax 包报错?、Eclipse 开发 Maven 项目提示:程序包 org.junit 不存在解决方案的实用技巧。

本文目录一览:

Eclipse项目中的Maven:软件包javax.ws.rs不存在(eclipse里没有maven)

Eclipse项目中的Maven:软件包javax.ws.rs不存在(eclipse里没有maven)

在Eclipse中,当我转到myProject->右键单击-> Run As-> Maven构建时,控制台中出现多个错误,概述某些软件包不存在,例如:

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

尽管在我的pom.xml中,我提供了那些依赖项:

<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

<dependencyManagement><dependecies>

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

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

我还将这些jar包含在本地的WebContent \ WEB-INF \
lib文件夹中,并添加到类路径中(我可以在tomcat上运行我的REST服务,错误“包不存在”仅在我尝试使用Maven时出现建立”。

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

我该如何解决?是否有战争迫使Maven在本地图书馆中查找?

答案1

小编典典

如果你有:

<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>

部分。

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

eclipse maven 构建web项目,测试包和测试资源包不存在创建

eclipse maven 构建web项目,测试包和测试资源包不存在创建

eclipse 中,在使用 maven构建web项目的时候,都是选择构建的是: maven-xxx-webapp 可是构建生成的时候,项目是会报错的,因为 并没有pom中引入 jsp相关的jar包。。。 而这个错误也会导致,该项目的 src/test/java 或者 src/test/resource 资源包不存在,没有自动生成,,如果没有错误,理论上是会自动生成的。 如果我要创建 folder 的话 就会说 比如 : src/test/java

The folder is already a source folder.

奇怪了可是,项目 中 明明没有该 测试资源包啊,,,那么怎么办呢,我们需要 测试 目录啊。 办法就是 : 在 src 文件下面,不是 有 main 包等等 其他 : src/main/java 下面的包了。 我们在 src 下面 新建 folder : test , 然后 在 test 下面建 folder : java , resource 。 然后刷新一下项目,,,我们 src/test/java , src/test/resource 资源包即有了。

这个估计是 eclipse的一个小BUG

eclipse 中Maven项目 的maven install 、build 、clean

eclipse 中Maven项目 的maven install 、build 、clean

1、maven clean 是清除target目录下的之前打好的jar包或者是war包;

2、maven build是重新对该maven项目进行打包,这里需要手动的输入打包的命令   -X package

上面的两部命令合在一起 maven install是对上面两个命令的集合,既是通过maven自带的原生命令,同时执行了clean 和build,比较节省时间;

那么问题就来了当时为什么我单独执行会出错呢,这就可以说明 maven 对eclipse外带的插件执行命不友好;

下面是一个大神的另一个问题的总结;

之前写代码的过程中曾经遇到过问题,用mvn install后,新改的内容不生效,一定要后来使用mvn clean install 才生效,于是想看看clean和不clean的区别。

 

就如大家知道的,maven在执行一个生命周期的命令的是时候将会执行之前的所有生命周期操作,比如执行mvn install,会执行前面一系列的动作包括 compile , package , test 等,具体请查看maven的官方文档。这个特性使maven的命令更加简洁易用。


再来分析原来的问题,为什么修改的内容不生效,肯定是最终打出来的war包中的内容没有更新,而war包中会依赖其他子工程的jar包,如果jar 包没有更新过,那war包调用老的jar包也会导致新内容不生效。定位到问题的原因应该是jar包没有用最新的资源(java或者配置文件),那jar包 又是什么时候,谁去打的呢。

上面我们提到我们执行mvn install的时候会先执行mvn package,maven就是通过这个生命周期来根据用户配置,进行打包(war、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">

...
<packaging>war</packaging>
...
</project>
这里指定package的时候打成一个war包,改成jar,就会被打成jar包。

我们看jar形式的情况,mvn package 会调用 maven-jar-plugin 这个插件进行打包。
下面我们做一些实验来看这个插件打包的时候的情况

1. 修改target目录下打好的jar包中class以及配置文件的内容,在运行命令mvn package,结果target包中的内容没有被覆盖。
2. 修改源代码中的内容,再运行命令mvn package,结果target包中的内容被覆盖了,产生了新的包。
3. 修改target目录下打好的jar包中的内容,运行命令mvn package -Djar.forceCreation,这个参数应该是强制创建jar包,所以结果target中的jar包内容被覆盖了,产生了新的jar包。

根据上面的实验好像还是不能解释什么时候应该用clean将target下面的内容删除重新生成,jar包,不过至少是明白了一些规则。

总结
1. 理论上来讲不做mvn clean 得到的jar包应该是最新的,除非其他方式修改jar包中的内容而不修改源代码。
2. 平时可以用mvn install,而不进行chean节省时间(如果你觉得节省时间多的话),但最保险还是用 mvn clean install 生成最新的jar包或其他包
3. 不想用mvn clean又想保证jar包最新,建议添加 -Djar.forceCreation 参数
---------------------
作者:liangwanmian
来源:CSDN
原文:https://blog.csdn.net/liangwanmian/article/details/78458159
版权声明:本文为博主原创文章,转载请附上博文链接!

Eclipse 如何解决 JavaEE 项目中 javax 包报错?

Eclipse 如何解决 JavaEE 项目中 javax 包报错?

BUG 回顾

  • 如下图所示,导入 JavaEE 项目然后狂彪如下错误

解决方法

  • 项目右键 --> Build Path ----> Configure Build Path ---> Libraies ---> Add Libray ---> Server RunTime ----> Applay 或者 Add External JAR 里找到本地 Tomcat 里的 servlet-api.jar 而后点击 Applay 即可解决这个问题

以上就是我关于 Eclipse 如何解决 JavaEE 项目中 javax 包报错? 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。


分割线


扩展知识

  1. Eclipse 报错:错误:程序包 javax.servlet.http 不存在

分割线


博主为咯学编程:父母不同意学编程,现已断绝关系;恋人不同意学编程,现已分手;亲戚不同意学编程,现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏,金额不限。。。

Eclipse 开发 Maven 项目提示:程序包 org.junit 不存在解决方案

Eclipse 开发 Maven 项目提示:程序包 org.junit 不存在解决方案

1、产生的问题:

maven 项目执行单元测试可以正常执行,但是执行 maven 命令 test,则报一下异常:

org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project support: Compilation failure: Compilation failure:
[ERROR] E:\workspace\support\src\test\java\com\test\spring\support\TestSpringContextHolder.java:[7,16] 错误: 程序包org.junit不存在
[ERROR] E:\workspace\support\src\test\java\com\test\spring\support\TestSpringContextHolder.java:[16,2] 错误: 找不到符号
[ERROR] 符号:   类 Test
[ERROR] 位置: 类 TestSpringContextHolder
[ERROR] E:\workspace\support\src\test\java\com\test\spring\support\TestSpringContextHolder.java:[29,2] 错误: 找不到符号
[ERROR] 符号:   类 Before
[ERROR] 位置: 类 TestSpringContextHolder
[ERROR] E:\workspace\support\src\test\java\com\test\spring\support\TestSpringContextHolder.java:[43,5] 错误: 找不到符号

  

2、产生上述错误的原因:

1)、maven 项目,单元测试和运行使用不同的 classpath,测试使用 test-classpath,运行使用 classpath;
2)、创建 maven 项目使用 junit 默认的版本为 3.8.1,它使用的是编程的方式,即使 maven dependencies 目录引入了 junit,但也无法使用,只能通过 build path 添加 junit 支持

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

 

3、解决方案:

将 junit 的版本提高到 4.x,配置代码如下:

        <dependency>
            <groupId>junit</groupId> <artifactId>junit</artifactId> <!-- 默认的版本为3.8.1,修改为4.x,因为3.x使用的为编程的方式,4.x为注解的形式。 --> <version>4.11</version> <scope>test</scope> </dependency>

4、补充:我上面贴出的异常目录位于。。。\src\test\java\。。。, 不是。。。\src\main\java\。。。,处理方式如上,如果异常发生在 main 目录而不是 test 目录,同时 junit 版本是 4.x,解决方案则将 scope 属性去掉:

        <dependency>
            <groupId>junit</groupId> <artifactId>junit</artifactId> <!-- 默认的版本为3.8.1,修改为4.x,因为3.x使用的为编程的方式,4.x为注解的形式。 --> <version>4.11</version> <!-- 去掉scope作用域,使用默认的compile,编译、测试、运行都有效的作用域 --> <!--<scope>test</scope>--> </dependency>

解决思路参考:https://blog.csdn.net/javaloveiphone/article/details/52163396

今天关于Eclipse项目中的Maven:软件包javax.ws.rs不存在eclipse里没有maven的讲解已经结束,谢谢您的阅读,如果想了解更多关于eclipse maven 构建web项目,测试包和测试资源包不存在创建、eclipse 中Maven项目 的maven install 、build 、clean、Eclipse 如何解决 JavaEE 项目中 javax 包报错?、Eclipse 开发 Maven 项目提示:程序包 org.junit 不存在解决方案的相关知识,请在本站搜索。

本文标签: