eclipse创建maven工程以后,测试代码找不到junit.jar包

W雅典娜 2014-11-01 01:02:32
maven工程的buildpath里有junit3.8.1.jar包,但是eclipse提示找不到

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>maven_test</groupId>
<artifactId>maven1</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>maven1 Maven Webapp</name>
<url>maven.oschina.net</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>maven1</finalName>


<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<verbose>true</verbose>
<compilerVersion>1.7</compilerVersion>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
</dependencyManagement>

</project>


求大神解答!!!
stackoverflow上面的高票答案都试过了,感觉没有用
...全文
629 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dhd040805 2015-12-15
  • 打赏
  • 举报
回复
楼主这个版本号在那个文件设置
W雅典娜 2014-11-18
  • 打赏
  • 举报
回复
引用 2 楼 xqf309 的回复:
没有写版本号吧,怎么会找得到呢!
非常感谢 是正解,只是觉得eclipse自己创建的pom.xml不应该有错误,所以就没有仔细看....
W雅典娜 2014-11-18
  • 打赏
  • 举报
回复
引用 5 楼 u011564172 的回复:
依赖没加版本号

  <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
     <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
多谢 是正解,我后来也发现了,以为是eclipse自动创建的就没问题,于是就没细看....
Mr_JieLQ 2014-11-01
  • 打赏
  • 举报
回复
依赖没加版本号

  <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
     <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
missMeyo 2014-11-01
  • 打赏
  • 举报
回复
二个依赖保持第一个,并且在版本号上填上响应版本,必须用Eclipse配置自己的maven。
skyesx 2014-11-01
  • 打赏
  • 举报
回复
當時好像也遇到這個問題,好像是eclipse環境問題
howsun_zh 2014-11-01
  • 打赏
  • 举报
回复
Eclipse菜单->Project->Clean...
熊青峰 2014-11-01
  • 打赏
  • 举报
回复
没有写版本号吧,怎么会找得到呢!
W雅典娜 2014-11-01
  • 打赏
  • 举报
回复
不好意思 贴错图片了
工程树图片

代码图片
maven2的插件,用于在eclipse下进行maven2的快速配置 打开eclipse .选择菜单 window ->preferences ; 在新打开的对话框的左边的一列会看到一个名为Maven2的选项。鼠标单击,然后点击右边的Local Repository Folder 那一栏的Browse按扭。然后定位到你本地的maven repository 目录。就是前面运行脚本生成的哪个目录。比如我的 是C:\Documents and Settings\er\.m2\repository 点ok,配置完成。 接下来就是测试一下maven能不能在eclipse里运行。新建一个项目 名为test. File->new ->project,选择java project 点next.然后在Project name 一栏输入test 然后我们回在下边看到有一个 JRE 的表。这个是指定你的项目所使用的JDK的版本。因为EJB3只能在jdk1.5上运行 所以在这里必须选择1.5.具体配置方法为:点击Configure JREs...弹出一个对话框。这个对话框是配制jdk的。它会 有一个已经定义的jdk.。就是现在系统所使用的那个。如果此jdk的版本不是jdk1.5你就得添加一个。 点add按扭 在jre name一栏起个名字,比如 my-jdKl1.5,然后在 jre home directory一栏选择你的jdk1。5的安装路径,如果正确 在jre system libraries 下边回看到有很多瓶子。点ok,然后把 “对勾”从你原来哪个改到my-jdk1.5上就可以了。然后再 点ok.. 然后点finish.)右键点击test new class 新建一个类。包为org.main 类名为Sample .添加一些测试代码,最后这个类的代码如下: package org.main;public class Sample { public String something(){ return "aaaaaaaa"; }} 右键点击test new ->junit test case 回弹出一个对话框,问你是否要把junit .jar 加入到这个项目中。这回我们选NO. (因为这回我们是通过maven 来构建项目。导入类库的操作由Maven来控制。)在新弹出的窗口中它会让你输入包 名和类名。包名:org.test 类名: testSample 然后点确定。然后添加一些代码,最后我们testSample的代码如下: package org.test;import org.main.Sample;import junit.framework.TestCase;public class testSample extends TestCase { public void testSample(){ Sample sa = new Sample(); String a = sa.something(); this.assertNotNull(a); }}此时会看到 有很多错误,这是因为没有导入junit.jar这个包。在项目test上点右键选择 Maven2 ->enable 在Group Id 一栏添如入test,然后点finish. 然后再在项目test上点右键选择 Maven2 ->add dependency 在新对话框里的Query输入junit 然后在下面的Search Results 里 展开junit 选择 "3.8.1 - junit-3.8.1.jar ............"这一项。然后点ok. 然后等一会。我们会看到错误没有了。然后在 左边的Package Explorer里展开Maben2 Dependencies 回 看到有一个junit.jar的瓶子。junit.jar这个库包已经被加入这个项目了。所以没有错误了。 然后打开testSample.java这个类。然后在outline窗口中把 类testSample展开,然后选择testSample()点 右键 然后选择run as ->junit test 然后回看到这个方法运行了。 这里有个小插曲, public void testSample(){ Sample sa = new Sample(); String a = sa.something(); this.assertNotNull(a); } 这个是这个类的一个方法,不是它的构造函数。如果是以下形式 public testSample(){ Sample sa = new Sample(); String a = sa.something(); this.assertNotNull(a); } 就是这个类的构造函数。 可以看出构造函数与方法的区别为构造函数是 public testSample() 而方法为public void testSample()。 构造函数不指定返回类型。而且它必须与类同名。 在outLine 窗口里构造函数上边有个“C”的小标记。我们把testSample 这个类改为 package org.test;import org.main.Sample;import junit.framework.TestCase;public class testSample extends TestCase { public void testSample(){ Sample sa = new Sample(); String a = sa.something(); this.assertNotNull(a); } public testSample(){ System.out.print("testSample"); }} 然后再在 outLine 里选择testSample() (注意选那个没有"C"标记的那个,然后点右键,run as junit test) 然后我们回看到程序运行了,而且在console里打印出 testSample,从中可以看到,你只要用到这个类、 它肯定要调用构造函数创建它自己,然后才执行你调用的方法。接着我们关掉junit窗口(在eclipse 左边那一列点 junit 旁边哪个X )回到Package Explorer。然后右键点 pom.xml 选择run as ->Maven2 build 在弹出的对话框选者Goals...按纽,Lifecycle Phases 展开选package 然后点ok.然后点run.等一会。 如果如下类似文字就好了:[INFO] Total time: 206 second [INFO] Finished at: Sun Mar 26 12:20:01 CST 2006 [INFO] Memory 1M/6M然后我们直接通过文件夹到这个项目的位置。比如我的是 D:\Taylorspace\test\target在这个文件夹下我们会 看到一个名为test-0.0.1.jar的文件。总结: 从中可以看到Maven的两个作用 1。管理library 包。在开发过程中我们回遇到这么一种情况,比如你建了 两个项目,一个为 project1 一个为project2 而这两个项目都用到一个jar 包。比如junit.jar 如果两个项目各自导入 junit.jar 不仅对磁盘空间是一个浪费,而且也不好管理。而通过Maven 我们可以看到它把是这么做的。当你的项目 需要一个包时通过 add dependancy.把它加进来以后Maven 就会在你在eclipse里指定的哪个Local Repository Folder 目录下这个jar包。比如我设的目录是C:\Documents and Settings\er\.m2\repository ,如果到,就在项目的构建 路径加上这个jar.如果在这个目录不到jar包。它回从网上下载这个jar包,放到此目录。以后再用到此jar就不用下载 了。 2。就是项目部署。就是我们在上例中 选择pom.xml 然后选择运行,Goal 设成package,然后我们发现生成一个 test-0.0.1.jar的文件。
maven到底是什么?    Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科]    这种又是大白话,如果没明白maven是什么,那么上面这句话跟没说一样,我自己觉得,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,就有些熟悉了,怎么通过pom.xml的配置就可以获取到jar包呢?pom.xml配置文件从何而来?等等类似问题我们需要搞清楚,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。    所以,根据上一段的描述,我们最终的目的就是学会如何在pom.xml中配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里,还有如何配置pom.xml获取到对应的jar包等等,这里提前了解一下我们如何通过pom.xml文件获取到想要的jar的,具体后面会详细讲解该配置文件。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧