将Jar添加到Maven项目时出错

时间:2010-03-10 16:41:53

标签: maven-2 jar

我在Eclipse的'Referenced Libraries'部分添加了一个jar,现在允许我在编码时查看来自这个jar的对象。但是,当我使用maven构建时,我不断收到The import ____ cannot be resolved个错误。

我该如何解决这个问题?我必须添加pom.xml吗?我正在尝试使用smartgwt.jar

另外 - 这样做的“正确”方法是什么?

3 个答案:

答案 0 :(得分:2)

正如另一个答案所示,你应该使用eclipse maven。 Maven有一个有用的eclipse:eclipse目标,可以用来生成可以在eclipse中导入的eclipse项目。

我在http://code.google.com/p/smartgwt/issues/detail?id=12上找到了这个例子,值得一试。

基本上,用

更新你的pom.xml
<pluginRepositories>
    <pluginRepository>
        <id>gwt-maven-plugins</id>
        <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/</url>
    </pluginRepository>
</pluginRepositories>    
<repositories>        
    <repository>
        <id>gwt-maven</id>
        <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/</url>
    </repository>
    <repository>
        <id>smartclient</id>
        <name>smartclient.com</name>
        <url>http://www.smartclient.com/maven2</url>
   </repository>
</repositories>

并添加依赖项:

<dependency>
    <groupId>com.smartgwt</groupId>
    <artifactId>smartgwt</artifactId>
    <version>2.0</version>
</dependency>

答案 1 :(得分:2)

Maven对pom.xml中未声明的内容一无所知,是的,您必须在POM中声明smartgwt。实际上,使用Maven和IDE的常用方法是在POM中添加内容,并从POM在IDE级别生成或派生内容。在Eclipse的情况下,这可以使用maven-eclipse-plugin或M2Eclipse完成(后者将是我的推荐,并支持双向操作)。

尽管如此,事实是smartgwt并未在Maven中央存储库中分发,因此您必须添加其存储库(在哪里找到它)依赖项。

<project>
  ...
  <repositories>
    <repository>
      <id>SmartGWT</id>
      <url>http://www.smartclient.com/maven2</url>
    </repository>
  </repositories>
  ...
  <dependencies>
    <dependency>
      <groupId>com.smartgwt</groupId>
      <artifactId>smartgwt</artifactId>
      <version>2.1</version><!-- or whatever version you're using -->
    </dependency>
    ...
  </dependencies>
</project>

smartgwt项目以某种方式在HowToEclipseGWTMaven中提供了一些(过时的)文档。

答案 2 :(得分:1)

您应该通过Eclipse或maven管理您的依赖项。 Maven有一个很好的实用程序来创建Eclipse项目文件,还有一个插件来管理Eclipse中的pom文件。

要专门解决您的问题,您需要找到所需jar的artifactId和groupId(以及可能的版本)。然后将其添加到pom文件中。然后maven将正确构建。