如何在 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"。
我有一个使用 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"。