Maven - это современный расширенный build tool.
Загрузите и установите Maven. На той же странице, вы найдете инструкции по установке, там где написано:
Теперь попробуем с ним поработать. Прошу учесть что последовательность действий я беру с книги Apache Maven 3 Cookbook. Итак, приступим-с. В директории, где у нас должны помещаться проекты, пишем:
Затем появится вопрос о выборе номера
Выбираем предлагаемый (нажимаем ввод)
Затем появляется вопрос о версии archetype, опять-же выбираем предлагаемый.
Затем идет запрос о groupId, пишем:
Затем artifactId, пишем:
Затем идет запрос о версии проекта и подтверждении пакеджа. Нажимаем везде ввод и вод к чему в конце концов приводит процесс постройки:
Вот что для нас сгенерировал maven:
Как видите, пока не густо, но ведь надо хоть с чего-то начинать).
Теперь давайте скомпилируем наше "произведение искусства".
Перейдите к папке самого проекта, то есть там где находится pom.xml сгенерированный и запустите compile:
Как видите, опять пошли загрузки и в конце результат компиляции. Давайте опять посмотрим что у нас из этого вышло:
Заметь-те что скомпилировался только класс App, AppTest - нет. Maven создан таким образом, что бы придерживаться идеологии, или даже стандарту TDD (Test Driven Development), таким образом прежде чем создать решение, нужно подготовить для него тест, и вот после этого появляется четкое выражение, то-есть оно как бы приобретает видимую структуру, как должно выглядеть само решение, или по крайне мере более четкое чем казалось изначально. Идем дальше и выполняем тест:
Заметь-те, опять куча загрузок, компиляция тест класса и затем запуск с результатом. И вот что у нас вышло на сей раз:
В принципе у нас готов шаблон по элементарному проекту.
Загрузите и установите Maven. На той же странице, вы найдете инструкции по установке, там где написано:
Installation Instructions
Теперь попробуем с ним поработать. Прошу учесть что последовательность действий я беру с книги Apache Maven 3 Cookbook. Итак, приступим-с. В директории, где у нас должны помещаться проекты, пишем:
PS C:\Users\Administrator> mvn archetype:generate [INFO] Scanning for projects... Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5. pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.p om (4 KB at 8.1 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom (13 KB at 78.1 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/21/maven-parent-21.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/21/maven-parent-21.pom (26 KB at 102.1 KB/ sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/apache/10/apache-10.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/apache/10/apache-10.pom (15 KB at 81.2 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5. jar Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.j ar (25 KB at 79.9 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.4/maven-install-plugin- 2.4.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.4/maven-install-plugin-2 .4.pom (7 KB at 43.3 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom (9 KB at 60.7 KB/sec) ...
Затем появится вопрос о выборе номера
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 439:
Выбираем предлагаемый (нажимаем ввод)
Затем появляется вопрос о версии archetype, опять-же выбираем предлагаемый.
Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 Choose a number: 6:
Затем идет запрос о groupId, пишем:
pe-quickstart-1.1.pom (2 KB at 10.1 KB/sec) Define value for property 'groupId': : com.test.project
Затем artifactId, пишем:
Define value for property 'artifactId': : myProject
Затем идет запрос о версии проекта и подтверждении пакеджа. Нажимаем везде ввод и вод к чему в конце концов приводит процесс постройки:
Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': com.test.project: : Confirm properties configuration: groupId: com.test.project artifactId: myProject version: 1.0-SNAPSHOT package: com.test.project Y: : [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart: [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: basedir, Value: C:\Users\Administrator [INFO] Parameter: package, Value: com.test.project [INFO] Parameter: groupId, Value: com.test.project [INFO] Parameter: artifactId, Value: myProject [INFO] Parameter: packageName, Value: com.test.project [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: C:\Users\Administrator\myProject [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 29:20 min [INFO] Finished at: 2014-07-20T13:27:06-04:00 [INFO] Final Memory: 10M/79M [INFO] ------------------------------------------------------------------------ PS C:\Users\Administrator>
Вот что для нас сгенерировал maven:
PS C:\Users\Administrator> tree /F myProject Folder PATH listing Volume serial number is CC58-8E5C C:\USERS\ADMINISTRATOR\MYPROJECT │ pom.xml │ └───src ├───main │ └───java │ └───com │ └───test │ └───project │ App.java │ └───test └───java └───com └───test └───project AppTest.java PS C:\Users\Administrator>
Как видите, пока не густо, но ведь надо хоть с чего-то начинать).
Теперь давайте скомпилируем наше "произведение искусства".
Перейдите к папке самого проекта, то есть там где находится pom.xml сгенерированный и запустите compile:
PS C:\Users\Administrator> cd myProject PS C:\Users\Administrator\myProject> mvn compile [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myProject 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plu gin-2.6.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plug in-2.6.pom (8 KB at 18.6 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plu gin-2.6.jar Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plug in-2.6.jar (29 KB at 184.8 KB/sec) ... Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manage r-1.9.1.jar (5 KB at 23.2 KB/sec) Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar (221 KB at 679 .3 KB/sec) [INFO] Compiling 1 source file to C:\Users\Administrator\myProject\target\classes [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 13.259 s [INFO] Finished at: 2014-07-20T14:04:54-04:00 [INFO] Final Memory: 12M/72M [INFO] ------------------------------------------------------------------------
Как видите, опять пошли загрузки и в конце результат компиляции. Давайте опять посмотрим что у нас из этого вышло:
PS C:\Users\Administrator\myProject> tree /F Folder PATH listing Volume serial number is CC58-8E5C C:. │ pom.xml │ ├───src │ ├───main │ │ └───java │ │ └───com │ │ └───test │ │ └───project │ │ App.java │ │ │ └───test │ └───java │ └───com │ └───test │ └───project │ AppTest.java │ └───target └───classes └───com └───test └───project App.class
Заметь-те что скомпилировался только класс App, AppTest - нет. Maven создан таким образом, что бы придерживаться идеологии, или даже стандарту TDD (Test Driven Development), таким образом прежде чем создать решение, нужно подготовить для него тест, и вот после этого появляется четкое выражение, то-есть оно как бы приобретает видимую структуру, как должно выглядеть само решение, или по крайне мере более четкое чем казалось изначально. Идем дальше и выполняем тест:
PS C:\Users\Administrator\myProject> mvn test [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myProject 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.12.4/maven-surefire-pl ugin-2.12.4.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.12.4/maven-surefire-plu gin-2.12.4.pom (11 KB at 24.2 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.12.4/surefire-2.12.4.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.12.4/surefire-2.12.4.pom (14 KB at 103.6 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.12.4/maven-surefire-pl ugin-2.12.4.jar Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.12.4/maven-surefire-plu gin-2.12.4.jar (30 KB at 128.2 KB/sec) [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ myProject --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory C:\Users\Administrator\myProject\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ myProject --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ myProject --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory C:\Users\Administrator\myProject\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ myProject --- [INFO] Compiling 1 source file to C:\Users\Administrator\myProject\target\test-classes [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ myProject --- Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-booter/2.12.4/surefire-booter-2.12.4 .pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-booter/2.12.4/surefire-booter-2.12.4. pom (3 KB at 24.1 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-api/2.12.4/surefire-api-2.12.4.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-api/2.12.4/surefire-api-2.12.4.pom (3 KB at 18.3 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/maven-surefire-common/2.12.4/maven-surefire-c ommon-2.12.4.pom ... Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-junit3/2.12.4/surefire-junit3-2.12.4 .jar Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-junit3/2.12.4/surefire-junit3-2.12.4. jar (26 KB at 167.6 KB/sec) ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.test.project.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8.205 s [INFO] Finished at: 2014-07-20T14:13:12-04:00 [INFO] Final Memory: 13M/72M [INFO] ------------------------------------------------------------------------ PS C:\Users\Administrator\myProject>
Заметь-те, опять куча загрузок, компиляция тест класса и затем запуск с результатом. И вот что у нас вышло на сей раз:
PS C:\Users\Administrator\myProject> tree /F /A Folder PATH listing Volume serial number is CC58-8E5C C:. | pom.xml | +---src | +---main | | \---java | | \---com | | \---test | | \---project | | App.java | | | \---test | \---java | \---com | \---test | \---project | AppTest.java | \---target +---classes | \---com | \---test | \---project | App.class | +---surefire-reports | com.test.project.AppTest.txt | TEST-com.test.project.AppTest.xml | \---test-classes \---com \---test \---project AppTest.class PS C:\Users\Administrator\myProject>
В принципе у нас готов шаблон по элементарному проекту.
No comments:
Post a Comment