Maven学习问题

时间:2011-10-01 22:26:27

标签: maven

在eclipse中我安装了m2e插件。我试图了解你如何知道要添加到pom文件的依赖项属性的名称?

比如说你怎么知道要使用哪个工件ID?

<dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${org.aspectj-version}</version>                   
</dependency>   

为什么在这里说工件id中的aspectjrt?

<dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>

和这里的组ID一样? 有什么模式吗?

说我的项目不见了

org.hibernate.Query;
org.hibernate.Session;
org.hibernate.SessionFactory;

在maven依赖项文件夹中我有hibernate-core-3.6.0.Final.jar,它有效地包含除了那些3之外的所有内容。

你自己写这些.pom吗?

我打赌,对于学生项目,我将不得不坚持手动添加数百个图书馆......否则我将无法尝试学习它:-)

1 个答案:

答案 0 :(得分:3)

  1. 您知道groupId:artifactId:version(我们称之为这些坐标)可用于您想要的工件。通常,您可以通过在项目文档中阅读它来找出您想要的工件,特别是对于具有大量工件的项目,其中一些工件可能包含可选插件。
  2. aspectjrt是AspectJ RunTime的缩写。
  3. GroupId和artifactId由相关库的创建者定义。没有通用模式,因为没有一个中央协调员。但是,有一些公约已经发展。通常,groupId至少部分是反向域名,就像Java包名称的第一部分是:org.hibernate,org.apache,org.springframework ... artifactId明确地标识了该特定工件的角色。它属于的组,如spring-core,spring-tx,spring-jms等。对于你知道的一些库,你可以通过searching Maven Central了解groupId和artifactId的样子。
  4. 如果您缺少org.hibernate.SessionFactory,那么您的类路径上没有hibernate-core-3.6.0.Final。如果你在类路径上有这个,那么你就不会错过SessionFactory类。你提到的那三个类肯定是在那个工件中,你可以从searching for the class in Central看到。如果您仍有疑问,请执行jar -tf hibernate-core-3.6.0.Final.jar并自行查看内容。我保证会有这些课程。