我的任务是将一个现有项目(以前是用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>
填写了明显的用户名和密码信息。我认为到目前为止,我已经通过简单地将必要的块添加到我的ApacheMavenconf目录下的settings.xml文件中来管理它。除了这一步,我几乎迷路了。同样,任何帮助,特别是在命令行指令方面的详细教程来构建这个项目将是非常好的。哦,顺便说一句,我正在使用Eclipse……我不确定这是否很重要。
EDIT:考虑到peter 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>
这个方向对吗?另外,我是否需要自己构造prototype .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>
首先:如果你想自定义settings.xml,不要触摸maven发行版中的那个,而是在$HOME/.m2/settings.xml
中创建一个新文件,maven可以找到并使用它。
作为第一步,我建议您根本不要使用settings.xml。创建一个超级简单的maven项目,并尝试编译它:
mvn clean install
第二步
使用非常简单的settings.xml:
- 可能不需要代理
- servers部分仅用于将工件发布到maven存储库;这在一开始并不重要
<?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存储库,例如Nexus或Artifactory。
只有当你的项目对maven中央存储库中的深度不满意时,使用maven repo才有意义——否则,你可以安全地不使用它。(我们暂时忽略repoman的性能影响)
现在,添加一些java源,依赖项等-并观察新的依赖项如何自动下载到本地存储库…
第三步
了解如何将更多的存储库添加到您的存储库管理器(在Nexus上的组"public")…