IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Технология Java | Open source  >

Введение в Apache Maven 2

developerWorks
На предыдущую страницуСтраница 7 из 16 На предыдущую страницу

Опции документа

Исходные тексты примера


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Практика по Maven 2 - ваш первый проект Maven 2

В первом практическом примере вы увидите, как построить простой проект в Maven 2. Встроенная в Maven 2 база о Java-проектах избавит вас от скучной настройки, которая может быть необходима при использовании других инструментов.

Класс-обработчик числовых операций

Этот пример использует класс, который обрабатывает числовые операции. Исходный код для основного класса NumOps показан в Листинге 4 :


Листинг 4. Класс NumOps
                    
package com.ibm.devworks;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class NumOps {
  private List <Operation> ops = new ArrayList 
<Operation>(); 
  public  NumOps() {
    ops.add( new AddOps());
  }
  public Operation getOp(int i)
   { Operation retval; 
   if (i > ops.size())  
      { retval = null; 
   } else { 
     retval = (Operation) ops.get(i);
   } return retval; 
  }
  public int size() { 
    return ops.size(); 
  }
  public static void main( String[] args ) {
    NumOps nop = new NumOps(); 
    for (int i=0;  i < nop.size(); i++) { 
      System.out.println( "2 " + 
        nop.getOp(i).getDesc() + 
        " 1 is " + 
        nop.getOp(i).op(2,1) ); 
    }
  }
}

Класс NumOps управляет набором объектов, ответственных за выполнение числовых операций над двумя целыми числами. Основной метод создает экземпляр NumOps, а затем вызывает каждый из объектов, управляемых NumOps, вызывая его метод getDesc() и метод op() соответственно. Все объекты, управляемые NumOps, реализуют интерфейс Operation, описанный в Operation.java и приведенный в Листинге 5:


Листинг 5. Интерфейс Operation
                    
package com.ibm.devworks;

public interface Operation {
   int op(int a, int b);
   String getDesc();
}

Единственная операция, описанная в этом первом примере - класс AddOps, показанный в Листинге 6:


Листинг 6. Класс AddOps
                    
package com.ibm.devworks;

public class AddOps implements Operation {
   public int op(int a, int b) {
      return a+b;
   }
   public String getDesc() {
      return "plus";
   }
}

Когда вы выполните класс NumOps, он выведет следующие выходные данные:

 2 plus 1 is 3 (2+1=3)



В начало


Использование Архетипа (Archetype) для создания примитивных проектов

Для создания всего что необходимо для простого Java-проекта, который можно построить, используя Maven, вы можете воспользоваться плагином Archetype, поставляемым со стандартной комплектацией Maven 2. В отличие от плагинов фаз создания, плагин Archetype запускается вне жизненного цикла проекта Maven и используется для создания проектов Maven. Запустите следующую команду (набирайте все в одной строке) из каталога, где вы хотите разместить проект NumOps:

mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes 
  -DgroupId=com.ibm.devworks -DartifactId=NumOps

Команда предоставит плагину Archetype координаты вашего модуля: com.ibm.devworks/NumOps/1.0-SNAPSHOT. В данном случае вам не надо будет указывать версию, поскольку плагин Archetype по умолчанию использует 1.0-SNAPSHOT. Эта команда создает пусковой файл pom.xml для проекта в соответствии с привычной структурой каталогов в Maven 2. Вы найдете код в разделе загрузки кодов этого руководства в папке example1 (см. Загрузка).

Результат должен быть похожим на приведенный в Листинге 7:


Листинг 7. Использование Archetype Maven для создания проекта NumOps
                    

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] -------------------------------------------------------------------------
---
[INFO] Building Maven Default Project
[INFO]    task-segment: [archetype:create] (aggregator-style)
[INFO] -------------------------------------------------------------------------
---
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus

...

[INFO] [archetype:create]
[INFO] Defaulting package to group ID: com.ibm.devworks
[INFO] -------------------------------------------------------------------------
---
[INFO] Using following parameters for creating Archetype: maven-archetype-quicks
tart:RELEASE
[INFO] -------------------------------------------------------------------------
---
[INFO] Parameter: groupId, Value: com.ibm.devworks
[INFO] Parameter: packageName, Value: com.ibm.devworks
[INFO] Parameter: basedir, Value: C:\temp\maven
[INFO] Parameter: package, Value: com.ibm.devworks
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: artifactId, Value: NumOps
[INFO] ********************* End of debug info from resources from generated POM
 ***********************
[INFO] Archetype created in dir: C:\temp\maven\NumOps
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Sat Dec 02 22:04:02 EST 2006
[INFO] Final Memory: 4M/8M
[INFO] ------------------------------------------------------------------------


Плагин Archetype создает дерево каталогов, файл pom.xml file и заполнитель - приложение App.java. Он также создает дерево каталогов для исходного кода тестироввания модулей и заполнитель - тест AppTest.java. Проект готов к запуску. На рисунке 6 показаны каталоги и файлы, созданные плагином Archetype:


Рисунок 6. Каталоги и файлы, созданные плагином Archetype
Каталоги и файлы, созданные плагином Archetype

Все что вам осталось сделать - это переместить файлы NumOps.java, Operation.java и AddOps.java в то место, где находится App.java и удалить App.java. В следующем разделе мы произведем некоторые изменения в созданном файле pom.xml, он удовлетворял нашим требованиям.



В начало



На предыдущую страницуСтраница 7 из 16 На предыдущую страницу
    IBM в России Конфиденциальность Контакты