初学者步骤配置Java项目以使用Apache Maven构建

时间:2011-08-18 22:18:23

标签: eclipse maven ant build

我被赋予了迁移现有项目(以前使用Ant构建)的任务,以使用Apache Maven。我对整个概念都是全新的,尽管我花了最后几个小时在这个问题上做了尽可能多的研究。遗憾的是,在安装像m2e和Eclipse IAM这样的东西时,我遇到了一些代理问题,所以一切都必须从命令提示符完成。截至目前,我确实安装了maven;现在的诀窍是在我的项目而不是Ant中使用它。我在网上找了几个教程,但考虑到我对这一切的经验不足,对我来说它们都太模糊了。如果有人能够以详细的方式一个接一个地打破我的步伐,那将是非常了不起的。在旁注中,我被告知将以下内容添加到本地Maven设置:

<settings>
  <servers>
    <server>
        <id>local_tomcat</id>
        <username>admin</username>
        <password>tomcat</password>
    </server>
    <server>
        <id>artifactory</id>
        <username>user</username>
        <password>password</password>
    </server>
  </servers>
  <mirrors>
    <mirror>
      <id>artifactory</id>
      <name>Artifactory</name>
      <url>https://jenkins.web.jw.local/artifactory/repo1</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  <proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.jw.local</host>
      <port>80</port>
      <username>user</username>
      <password>password</password>
      <nonProxyHosts>*.jw.local</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

填写明显的用户名和密码信息。我想我已经通过简单地将必要的块添加到ApacheMaven \ conf目录下的settings.xml文件中来管理。除了那一步,我几乎迷失了。同样,任何帮助,特别是关于构建此项目的命令行指令的详细教程的帮助都会很棒。哦,另一方面,我正在使用Eclipse ......不确定这是否重要。

编辑:考虑到Petr Kozelka的回答,我试图为我的项目制作一个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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.company</groupId>
    <artifactId>appName</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>
    <name>Application Name</name>
    <description>Yadda Yadda</description>
    <build>
        <plugins>
        </plugins>
    </build>
    <dependencies>
    </dependencies>
    <repositories>
    </repositories>
</project>

这个方向是朝着正确的方向发展吗?另外,我是否需要自己构建archetype.xml文件,或者Maven会以某种方式通过命令行执行此操作吗?如果我需要自己做,这就是我到目前为止所提出的:

<archetype xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype-1.0.0.xsd">
    <id>lighthouse</id>
    <sources>
        <source>src/com/jeldwen/lighthouse/controller/AddTimeController.java</source>
        <source>src/com/jeldwen/lighthouse/controller/BugController.java</source>
        <source>src/com/jeldwen/lighthouse/controller/DeleteTimeController.java</source>
        <source>src/com/jeldwen/lighthouse/controller/EnterTimeController.java</source>
        <source>src/com/jeldwen/lighthouse/controller/ModifyTimeController.java</source>
        <source>src/com/jeldwen/lighthouse/controller/PersonController.java</source>
        <source>src/com/jeldwen/lighthouse/controller/ProjectController.java</source>
        <source>src/com/jeldwen/lighthouse/controller/TimeController.java</source>
        <source>src/com/jeldwen/lighthouse/model/Area.java</source>
        <source>src/com/jeldwen/lighthouse/model/Bug.java</source>
        <source>src/com/jeldwen/lighthouse/model/DBModel.java</source>
        <source>src/com/jeldwen/lighthouse/model/DefaultModel.java</source>
        <source>src/com/jeldwen/lighthouse/model/JWModel.java</source>
        <source>src/com/jeldwen/lighthouse/model/JWTime.java</source>
        <source>src/com/jeldwen/lighthouse/model/Person.java</source>
        <source>src/com/jeldwen/lighthouse/model/Project.java</source>
        <source>src/com/jeldwen/lighthouse/util/Lighthouse.java</source>
        <source>src/com/jeldwen/lighthouse/util/LighthouseApplicationListener.java</source>
        <source>src/com/jeldwen/lighthouse/util/LighthouseServlet.java</source>
        <source>src/com/jeldwen/lighthouse/util/LighthouseSystemProperties.java</source>
        <source>src/com/jeldwen/lighthouse/LighthouseApp.java</source>
    </sources>
    <testSources>
        <!-- None -->
    </testSources>
    <allowPartial>true</allowPartial>
</archetype>

1 个答案:

答案 0 :(得分:1)

首先:如果您想自定义settings.xml,请不要触摸maven发行版中的那个 - 而是在$HOME/.m2/settings.xml中创建一个新文件,maven在其中找到并使用它。

作为第一步,我建议您根本不使用settings.xml。 创建一个supersimple maven项目,并尝试编译它:

mvn clean install

第二步

使用非常简单的settings.xml:

  • 您可能不需要代理
  • 只有将工件发布到maven存储库才需要
  • servers部分;这在开始时并不重要
  • 这里是:
<?xml version="1.0" encoding="UTF-8"?>
<settings>
  <mirrors>
    <mirror>
      <id>repos</id>
      <mirrorOf>*</mirrorOf>
      <name>internal mirror</name>
      <url>https://jenkins.web.jw.local/artifactory/repo1</url>
    </mirror>
  </mirrors>
  <!-- TODO: the proxy part here -->
</settings>

这假定您使用内部maven存储库,例如NexusArtifactory

如果您的项目对Maven Central Repository中提供的代码不满意,那么使用maven repo是有意义的 - 否则,您可以安全地离开它。 (我们现在忽略了repoman的性能影响)

现在,添加一些java源代码,依赖项等等 - 并观察新的依赖项如何自动下载到本地存储库......

第三步

了解如何将更多存储库添加到存储库管理器(Nexus上的“public”组)...

其余的可能是进一步研究的主题。