java - 使用 Maven 构建项目时缺少 JUNIT Jar 异常

标签 java maven maven-2 maven-3

我正处于 Maven 的初级阶段。我创建了一个项目并尝试使用该命令。我的最后缺少什么?我正在尝试编译并运行 TestSuite 文件:

mvn clean package

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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test.myProject</groupId>
  <artifactId>myTest</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>egdsvTest</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

但使用后出现以下异常。

异常

 D:\MVN_Shirish_Project\Test>mvn clean package
    [INFO] Scanning for projects...
    [INFO]
    [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethrea
    ded.SingleThreadedBuilder with a thread count of 1
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Test 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Test ---
    [INFO] Deleting D:\MVN_Shirish_Project\Test\target
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Test
    ---
    [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
    i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:\MVN_Shirish_Project\Test\src\
    main\resources
    [INFO]
    [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ Test ---

    [WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. b
    uild is platform dependent!
    [INFO] Compiling 1 source file to D:\MVN_Shirish_Project\Test\target\classe
    s
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ eg
    dsvTest ---
    [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
    i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:\MVN_Shirish_Project\Test\src\
    test\resources
    [INFO]
    [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ 
    Test ---
    [WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. b
    uild is platform dependent!
    [INFO] Compiling 1 source file to D:\MVN_Shirish_Project\Test\target\test-c
    lasses
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Test ---
    [INFO] Surefire report directory: D:\MVN_Shirish_Project\Test\target\surefi
    re-reports
    [WARNING] Missing POM for org.apache.maven.surefire:surefire-junit3:jar:2.12.4
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 0.968 s
    [INFO] Finished at: 2014-10-14T12:28:09+05:30
    [INFO] Final Memory: 7M/247M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.
    12.4:test (default-test) on project Test: Unable to generate classpath: org
    .apache.maven.artifact.resolver.MultipleArtifactsNotFoundException: Missing:
    [ERROR] ----------
    [ERROR] 1) org.apache.maven.surefire:surefire-junit3:jar:2.12.4
    [ERROR]
    [ERROR] Try downloading the file manually from the project website.
    [ERROR]
    [ERROR] Then, install it using the command:
    [ERROR] mvn install:install-file -DgroupId=org.apache.maven.surefire -DartifactI
    d=surefire-junit3 -Dversion=2.12.4 -Dpackaging=jar -Dfile=/path/to/file
    [ERROR]
    [ERROR] Alternatively, if you host your own repository you can deploy the file t
    here:
    [ERROR] mvn deploy:deploy-file -DgroupId=org.apache.maven.surefire -DartifactId=
    surefire-junit3 -Dversion=2.12.4 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url
    ] -DrepositoryId=[id]
    [ERROR]
    [ERROR] Path to dependency:
    [ERROR] 1) dummy:dummy:jar:1.0
    [ERROR] 2) org.apache.maven.surefire:surefire-junit3:jar:2.12.4
    [ERROR]
    [ERROR] ----------
    [ERROR] 1 required artifact is missing.
    [ERROR]
    [ERROR] for artifact:
    [ERROR] dummy:dummy:jar:1.0
    [ERROR]
    [ERROR] from the specified remote repositories:
    [ERROR] m1 (http://repo1.maven.org/maven2, releases=true, snapshots=false)
    [ERROR] -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
    ch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [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/MojoExecutionE
    xception

最佳答案

Maven 的工作原理是在您的桌面或已安装 Maven 的计算机中创建本地存储库并运行此目标。

在maven运行目标的过程中,它首先尝试从中央存储库中获取您在注释M1或M2中列出的所有依赖jar文件,然后将它们存储在C:/Users/yourname/.m2/repository文件夹(假设您使用的是Windows机器)或其他操作系统中相应的用户文件夹下。

然后它使用 jars 根据给定目标的要求运行构建。

现在,就您的情况而言,您必须找到一种连接到存储库的方法(检查位于用户目录中 .m2 文件夹中的 settings.xml),并检查是否可以连接到互联网中央 Maven 存储库。如果没有,您可以获取 jar 文件并按照错误中的建议手动安装它们。一旦你这样做了,我认为你应该解决这个问题。如果您仍然遇到问题,请告诉我。

关于java - 使用 Maven 构建项目时缺少 JUNIT Jar 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354674/

相关文章:

android - Protobuffers错误将库添加到android

java - 集成 JaCoCo、Arquillian 和 REST Assured 使我的代码覆盖率为 0%

java - 如何将 Maven 构建的工件部署到 SourceForge 文件发布系统?

maven-2 - 如何构建重命名的 POM xml

java - 如何使用 Rest API 或某些 SDK Api 创建 Azure 事件中心

java - Oracle 连接压缩?

java - 从属性文件加载数据以供 Liquibase 在 Maven 构建中使用

java - 向上转换为对象的 ArrayList 然后向下转换为自定义 ArrayList 的成本

java - 在Java Spring Boot应用程序中执行Kotlin脚本

eclipse - 无法计算构建计划 : Could not find artifact org. apache.maven.plugins :maven-resources-plugin:jar:2. 4.3