Шаги для начинающих по настройке проекта Java для сборки с помощью Apache Maven - PullRequest
0 голосов
/ 19 августа 2011

Мне было поручено перенести существующий проект - ранее созданный с помощью 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>

Заполнив очевидную информацию об имени пользователя и пароле. Я думаю, что до сих пор справился с этим, просто добавив необходимые блоки в файл settings.xml в моем каталоге ApacheMaven \ conf. Кроме этого единственного шага, я в значительной степени потерян. Опять же, любая помощь, особенно в виде подробного учебника с точки зрения инструкций командной строки, для создания этого проекта была бы замечательной. Да, и с другой стороны, я использую Eclipse ... Не уверен, что это будет иметь большое значение.

РЕДАКТИРОВАТЬ : Учитывая ответ Петра Козелки, я попытался создать файл 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 Ответ

1 голос
/ 19 августа 2011

Прежде всего: если вы хотите настроить файл settings.xml, не трогайте тот файл в дистрибутиве maven - вместо этого создайте новый файл в $HOME/.m2/settings.xml, где maven найдет и использует его.

В качестве самого первого шага , я рекомендую вам вообще не использовать settings.xml.Создайте сверхпростой проект maven и попробуйте скомпилировать его:

mvn clean install

Второй шаг

Используйте очень простые settings.xml:

  • вам, вероятно, не нужен прокси
  • серверная часть нужна только для публикации артефактов в репозитории 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 или Артефакт .

Использование репозитория maven имеет смысл только в том случае, если ваши проекты недовольны депсами, доступными в Центральном репозитории Maven *1031*, иначе вы можете спокойно обходиться без него. (давайте пока пренебрегаем эффектом производительности repoman)

Теперь, добавьте некоторые java-источники, зависимости и т. Д. - и посмотрите, как новые зависимости автоматически загружаются в вашлокальный репозиторий ...

Третий шаг

Узнайте, как добавить дополнительные репозитории в свой менеджер репозитория (группа "public" в Nexus) ...

Остальное, вероятно, является предметом дальнейших исследований.

...