使用maven 管理代码,   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
    <dependencies>
      <dependency>
        <groupId>org.apache.maven.surefire</groupId>
        <artifactId>surefire-junit47</artifactId>
        <version>2.12</version>
      </dependency>
    </dependencies>
  </plugin>强制使用 junit47来执行 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.
3.2:compile (default-compile) on project storm: Compilation failure
[ERROR] \work\workspace\storm\src\main\java\edu\hzsf\storm\dal\dao\BaseTestCase.
java:[6,7] 无法访问 junit.framework.TestCase
[ERROR] 未找到 junit.framework.TestCase 的类文件
[ERROR] public class BaseTestCase extends AbstractDependencyInjectionSpringConte
xtTests{
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal o
rg.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on
 project storm: Compilation failure
\work\workspace\storm\src\main\java\edu\hzsf\storm\dal\dao\BaseTestCase.java:[6,
7] 无法访问 junit.framework.TestCase
未找到 junit.framework.TestCase 的类文件
public class BaseTestCase extends AbstractDependencyInjectionSpringContextTests{
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:213)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
ct(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
ct(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu
ild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl
eStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun
cher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
a:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
352)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation fail
ure
\work\workspace\storm\src\main\java\edu\hzsf\storm\dal\dao\BaseTestCase.java:[6,
7] 无法访问 junit.framework.TestCase
未找到 junit.framework.TestCase 的类文件
public class BaseTestCase extends AbstractDependencyInjectionSpringContextTests{
        at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompiler
Mojo.java:656)
        at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default
BuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:209)
        ... 19 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
eption出现这个问题 。   于是我把junit 版本换成3.8.1  去掉上面的pom 配置,但是还是提示上面的错误。我的单元测试是继承了
AbstractDependencyInjectionSpringContextTests  是不是这里出现的问题?  如果需要 mvn dependency:tree 或者  mvn install -X 可以联系我,所有分求解。

解决方案 »

  1.   

    哥们,这个错误,只能是javac的时候找不到junit的jar包,请问你是怎么在哪里?怎么配置CLASSPATH的?
      

  2.   

    推荐一个插件用用吧,m2eclipse从这里添加依赖
      

  3.   

    classpath 是指装JDK配的那个么?
    还是 maven 仓库也要配在里面?
      

  4.   

    ◎classpath 是指装JDK配的那个么?
    ——系统全局性的CLASSPATH设置,在Windows下用命令行“set CLASSPATH=xxoo;xxoo;” 或者 “控制面板>系统>高级>环境变量”来设置的。◎还是 maven 仓库也要配在里面?
    ——也可以把junit.jar包复制到maven仓库中,也就是<localRepository>目录</localRepository>所配置的这个目录位置。
    CLASSPATH的装载优先级比maven仓库要高,但是一般而言并不推荐,一般建议是保持CLASSPATH干净,以避免不同项目间出现JAR包冲突(比如CLASSPATH指向了一个旧版本的Log4j.jar,而实际上项目需要新版本的Log4j.jar,由于CLASSPATH装载级别高而导致项目运行出错)。
    我的问题只是问问你,你有没有确认你的junit.jar用了某种方式可以绝对确认被引入了?
      

  5.   

    maven 里没看到对Junit添加依赖
      

  6.   

    junit 的话要加 dependency 的,没看到啊?  <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.10</version>
          <scope>test</scope>
        </dependency>
        ...
      </dependencies>
      

  7.   

    问题解决了。我把TestBseCase 放在 main /java 里面了,  而juint 是配置在 test的scope 中的,在
     main /java compile 的时候肯定是找不到的。
      

  8.   

    新问题  mvn clean package -Dmaven.test.skip=true 可以打包成功 ,但是测试还是不通<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>edu.hzsf</groupId>
      <artifactId>storm</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>storm Maven Webapp</name>
      <url>http://maven.apache.org</url><properties>
    <struts.version>2.2.1.1</struts.version>
    <struts.d.javassist>3.12.1.GA</struts.d.javassist>
    <spring.version>3.0.5.RELEASE</spring.version>
    <ibatis.version>2.0.8</ibatis.version>
    <junit.version>4.8</junit.version>
    <slf4j.version>1.6.1</slf4j.version>
    <logback.version>0.9.29</logback.version>
    </properties><dependencies>
    <!-- j2ee5依赖包 -->
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
    </dependency> <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
    </dependency>
    <!-- google -->
         <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>10.0.1</version>
            </dependency> <!-- junit测试依赖包 -->
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>${junit.version}</version>
    <scope>test</scope>
    </dependency> <!-- struts2 依赖包 -->
    <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>${struts.version}</version>
    </dependency> <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-convention-plugin</artifactId>
    <version>${struts.version}</version>
    </dependency> <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-spring-plugin</artifactId>
    <version>${struts.version}</version>
    </dependency> <dependency>
    <groupId>javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>${struts.d.javassist}</version>
    </dependency>

    <!-- spring 依赖包 -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
    </dependency> <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${spring.version}</version>
    </dependency> <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring.version}</version>
    <exclusions>
     <exclusion>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>

     </exclusion>
     </exclusions>
    </dependency> <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${spring.version}</version>
    </dependency> <!-- ibatis依赖包 -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-ibatis</artifactId>
    <version>${ibatis.version}</version>
    </dependency> <dependency>
    <groupId>org.apache.ibatis</groupId>
    <artifactId>ibatis-sqlmap</artifactId>
    <version>2.3.4.726</version>
    </dependency>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.14</version>
    </dependency>
    <dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
    </dependency>

    <!-- slf4j+LOGBack依赖包 -->
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j.version}</version>
    </dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>log4j-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
    </dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
    </dependency>
    <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>${logback.version}</version>
    </dependency>
    <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>${logback.version}</version>
    </dependency>

      <dependency>   
              <groupId>com.sun</groupId>   
              <artifactId>tools</artifactId>   
              <version>1.6.0</version>   
              <scope>system</scope>   
              <systemPath>C:/Program Files/Java/jdk1.6.0_18/lib/tools.jar</systemPath>   
       </dependency> </dependencies><build>
    <plugins>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
    <configuration>
      <source>1.6</source> 
      <target>1.6</target> 
      <encoding>gbk</encoding> 
      </configuration>
      </plugin>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.10</version> 
     <configuration>
      <junitArtifactName>junit:junit</junitArtifactName> 
     <includes>
      <include>**/*Test.java</include> 
      <include>**/*Tests.java</include> 
      </includes>
      </configuration>
      </plugin></plugins></build><!-- pluging远程资源仓库配置 --></project>
    错误
    -------------------------------------------------------------------------------
    Test set: edu.hzsf.storm.dal.dao.daoibatis.UserDAOTest
    -------------------------------------------------------------------------------
    Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 10.678 sec <<< FAILURE!
    testGetUser(edu.hzsf.storm.dal.dao.daoibatis.UserDAOTest)  Time elapsed: 10.328 sec  <<< ERROR!
    java.lang.NoSuchMethodError: org.springframework.core.MethodParameter.getParameterAnnotations()[Ljava/lang/Object;
    at org.springframework.beans.factory.config.DependencyDescriptor.getAnnotations(DependencyDescriptor.java:203)
    at org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.isAutowireCandidate(QualifierAnnotationAutowireCandidateResolver.java:106)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.isAutowireCandidate(DefaultListableBeanFactory.java:377)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.isAutowireCandidate(DefaultListableBeanFactory.java:364)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:670)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:610)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1076)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:982)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:329)
    at org.springframework.test.AbstractDependencyInjectionSpringContextTests.injectDependencies(AbstractDependencyInjectionSpringContextTests.java:208)
    at org.springframework.test.AbstractDependencyInjectionSpringContextTests.prepareTestInstance(AbstractDependencyInjectionSpringContextTests.java:183)
    at org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:103)
    at junit.framework.TestCase.runBare(TestCase.java:132)
    at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:79)
    at junit.framework.TestResult$1.protect(TestResult.java:110)
    at junit.framework.TestResult.runProtected(TestResult.java:128)
    at junit.framework.TestResult.run(TestResult.java:113)
    at junit.framework.TestCase.run(TestCase.java:124)
    at junit.framework.TestSuite.runTest(TestSuite.java:232)
    at junit.framework.TestSuite.run(TestSuite.java:227)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
    at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
    at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
    [code=Java][/code]
      

  9.   

    java.lang.NoSuchMethodError: org.springframework.core.MethodParameter.getParameterAnnotations()现在真的是 JAR 包版本问题了应该是你 spring-beans.jar 与 spring-core.jar 的版本不一致。另外没看到类似于:
                <dependency>  
                    <groupId>org.springframework</groupId>  
                    <artifactId>spring-beans</artifactId>  
                    <version>${version.spring}</version>  
                </dependency>  
    这样的东西?
      

  10.   

    加上 
     <dependency>   
      <groupId>org.springframework</groupId>   
      <artifactId>spring-beans</artifactId>   
      <version>${sping.version}</version>   
      </dependency>   还是同样的问题
      

  11.   

    发现 仓库里面有 2.0.8 2.0.6  3.0.5三个文件夹   , 但是只有3.0.5里面有jar  按照maven 依赖的第一原则 ,为什么还会出现2.0.8 2.0.6 两个版本的beans  。另外我想知道  你们一般怎么调节依赖之间的关系?  还有你开发时候用的 一般的标准 pom 配置 ,一些框架的版本
      

  12.   

    SpringFrameWork 下面  ,core 也有三个版本, 有些包 是 2.06  有些是2.5.8的 这应该就是出问题的地方吧  ,有没有什么Spring All In ONE 之类的东西,统一Spring 的版本
      

  13.   

    你的情况说明你beans版本是3.0.5,结果core版本是2.06或2.5.8,这肯定是完蛋的。另外还不知道你${sping.version}这个参数配置的究竟是多少。自己去网上下载吧,直接把一个完整的Spring版本下载下来,然后放到对应目录中,参数也注意配对应的版本号。
      

  14.   

    昨天我发现我DEBUG 不了, connot connect to VM ,查了一下大概是我以前用迅雷加速器,把我的ipV6怎么样了,我发现出现上面问题的是,JUNIT根本启动不了,然后我重装了机器就好了。