如何在 Eclipse 中构建我的 Maven pom?

How do I build my Maven pom in Eclipse?

我有一个使用 UI4J 的项目,我决定使用 maven 而不是使用外部 jar,我打算通过 git 分发它,所以我猜这是一个更好的方法。

这是我的 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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Kalamaria</groupId>
  <artifactId>KalamariaHarverst</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>MavenFirst</name>
    <dependencies>
        <dependency>
            <groupId>com.ui4j</groupId>
            <artifactId>ui4j</artifactId>
            <version>2.0.0</version>
            <type>pom</type>
        </dependency>
    </dependencies>
</project>

问题是我找不到使它工作的方法。无论我尝试什么,我仍然在导入库时遇到错误,这意味着未导入 ui4j 的 jar。

我(以及其他人)尝试过以 "clean install" 为目标 "Maven bumvn eclipse:eclipseild"

正在从 Maven 菜单下载源代码并更新项目
甚至尝试从控制台执行 mvn eclipse:eclipse,但出现此错误

The program 'mvn' can be found in the following packages: * maven * maven2 Try: sudo apt-get install

这是如何工作的,我应该如何导入声明的 jar?

删除 <type></type> 是您需要做的正确的第一步。

现在,您的存储库中可能还有一个 pom.lastUpdated 文件是错误的,您需要强行覆盖它。最简单的做法就是删除 .m2 目录中的整个目录,该目录位于 OS 依赖主目录中。在 windows 上,这将是:

C:\Users\<username>\.m2\repository\com\ui4j

在 Linux,这通常在:

/home/<username>/.m2/repository/com/ui4j

删除该目录,然后执行 Maven -> 更新项目,这应该可以解决您的问题。

顺便说一下,mvn eclipse:eclipse 几乎从来都不是正确的做法,最好使用 m2eclipse 进行 eclipse 集成,因为它工作得更顺畅。


我无法重现添加 ui4j 依赖项时自动添加 pom 类型的行为。但是,大多数时候正确的依赖项 <type>jar,因为这是默认值。 pom 依赖项最常用于项目只是 pom 而没有其他项目的情况,这通常作为整个应用程序的父级 pom

在这种情况下(在大多数情况下),您需要的类型是 jar,因此不要指定类型参数。

为@durron597 的正确答案添加更多背景知识:

标签定义 Maven 在下载您的工件时在存储库中查找的内容。存在各种类型。最常见和默认的是 "jar" - Maven 将寻找打包为 "jar" 的东西 - 一个常规的 *.jar 文件。其他类型包括 "test-jar"、"war" 和 "pom"。键入 "pom" 意味着 Maven 将查找打包为 "pom" 的内容——基本上是您的依赖项的 pom.xml 文件。您提到的大多数工件都打包为 "jar" 并且不提供 "pom" 包装。请参阅 http://maven.apache.org/pom.html#Dependencies,搜索 "Type"。