javac编译错误和Maven依赖项解析的问题

时间:2015-07-14 14:31:32

标签: java maven dependencies gson

对于Maven来说,我是一个“noob”。我过去曾经使用过ANT,但还不够Maven让它“坚持”我。

这是我的问题。我正在尝试编写一个java程序,它将解析JSON文件以获取相关信息,然后使用仅上载CSV文件的专有工具生成CSV文件以进行上载。我使用Maven构建了项目。该程序将使用Google Gson库,我将其列为我的POM文件中的依赖项(包括在下面)。当我执行“mvn compile”时,Maven返回一个错误,指示Maven应该通过其依赖管理功能解析的包不存在。

具体错误:

<html>

<head>
  <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
      $('#name').val('Name1');
    });

    function clickMe() {
      alert('click me called');
    }
  </script>
</head>

<body>
  Person Name:
  <input type="text" id="name" data-bind="value:personName">
  <input type="submit" value="Save" onClick="javascript:clickMe()" />
</body>

</html>

这是我的POM文件:

"error: package com.google.code.gson does not exist"

我的java应用程序类中有一个import语句,根据Maven下载我的依赖项,如果我对Maven的理解是正确的,那么它应该是可解析的。这是import语句。

<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.acumen.app</groupId>
  <artifactId>CatalogConverter</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>CatalogConverter</name>
  <url>http://maven.apache.org</url>
  <build>
    <plugins>
      <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.3.2</version>
      <configuration>
        <source>1.7</source>
        <target>1.7</target>
      </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.3.1</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
</project>

所以我的问题是,为什么Maven不会编译我的代码?我认为我没有错误配置导入和POM文件。虽然,这总是值得商榷的!我可以去我当地的Maven“repo”,看看这些罐子实际上已经下载了。我很确定错误是“用户错误”,所以我在哪里犯错误?

我不相信“提供”是正确的依赖关系,因为成功编译需要jar文件,必须下载(因为没有容器服务器或其他机制将为我解决它们)。应用程序将作为jar本身执行。

1 个答案:

答案 0 :(得分:0)

在您的gson版本中必须是

import com.google.gson.Gson;