Basic Java Tools for Building & Testing Apps
Скачать 4.76 Mb.
|
Старший команда Описание 1 gradle –q help –task <имя задачи> Предоставляет информацию об использовании (например, путь, тип, описание, группа) о конкретной задаче или нескольких задачах. 2 зависимости gradle –q Предоставляет список зависимостей выбранного проекта. 3 gradle -q api: зависимости — configuration <имя задачи> Предоставляет список ограниченных зависимостей, соответствующих конфигурации. 4 gradle –q buildEnvironment Предоставляет список зависимостей сценария сборки. 5 gradle –q dependencyInsight Предоставляет представление о конкретной зависимости. 6 Gradle –q свойства Предоставляет список свойств выбранного проекта. Gradle — Создайте проект JAVA В этой главе рассказывается о том, как собрать проект Java с помощью файла сборки Gradle. Прежде всего, мы должны добавить плагин Java в скрипт сборки, потому что он предоставляет задачи для компиляции исходного кода Java, запуска модульных тестов, создания Javadoc и создания файла JAR. Используйте следующую строку в файле build.gradle . apply plugin: 'java' Макет проекта Java по умолчанию Когда вы добавляете плагин в свою сборку, он предполагает определенную настройку вашего Java-проекта (аналогично Maven). взгляните на следующую структуру каталогов. src / main / java содержит исходный код Java src / test / java содержит тесты Java Если вы выполните эту настройку, следующий файл сборки будет достаточен для компиляции, тестирования и компоновки проекта Java. Чтобы начать сборку, введите следующую команду в командной строке. C:\> gradle build Исходные наборы могут использоваться для указания другой структуры проекта. Например, источники хранятся в папке src, а не в src / main / java . Взгляните на следующую структуру каталогов. apply plugin: 'java' sourceSets { main { java { srcDir 'src' } } test { java { srcDir 'test' } } } Выполнение задачи init Gradle еще не поддерживает несколько шаблонов проектов. Но он предлагает задачу инициализации для создания структуры нового проекта Gradle. Без дополнительных параметров эта задача создает проект Gradle, который содержит файлы-оболочки Gradle, файлы build.gradle и settings.gradle . При добавлении параметра —type с java-библиотекой в качестве значения создается структура проекта java, и файл build.gradle содержит определенный шаблон Java с Junit. Посмотрите на следующий код для файла build.gradle . apply plugin: 'java' repositories { jcenter() } dependencies { compile 'org.slf4j:slf4j-api:1.7.12' testCompile 'junit:junit:4.12' } В разделе репозитории он определяет, где найти зависимости. Jcenter для разрешения ваших зависимостей. Раздел «Зависимости» предназначен для предоставления информации о внешних зависимостях. Указание версии Java Обычно проект Java имеет версию и целевую JRE, на которой он компилируется. Свойство version и sourceCompatibility можно установить в файле build.gradle . version = 0.1.0 sourceCompatibility = 1.8 Если артефакт является исполняемым Java-приложением, файл MANIFEST.MF должен знать класс с методом main. apply plugin: 'java' jar { manifest { attributes 'Main-Class': 'com.example.main.Application' } } Пример: Создайте структуру каталогов, как показано на скриншоте ниже. Скопируйте приведенный ниже Java-код в файл App.java и сохраните его в каталоге consumerbanking \ src \ main \ java \ com \ bank . package com.bank; /** * Hello world! * */ public class App { public static void main( String[] args ){ System.out.println( "Hello World!" ); } } Скопируйте приведенный ниже Java-код в файл AppTset.java и сохраните его в каталоге customerbanking \ src \ test \ java \ com \ bank . package com.bank; /** * Hello world! * */ public class App{ public static void main( String[] args ){ System.out.println( "Hello World!" ); } } Скопируйте приведенный ниже код в файл build.gradle и поместите его в каталог consumerbanking \ . apply plugin: 'java' repositories { jcenter() } dependencies { compile 'org.slf4j:slf4j-api:1.7.12' testCompile 'junit:junit:4.12' } jar { manifest { attributes 'Main-Class': 'com.example.main.Application' } } Для компиляции и выполнения вышеуказанного скрипта используйте приведенные ниже команды. consumerbanking\> gradle tasks consumerbanking\> gradle assemble consumerbanking\> gradle build Проверьте все файлы классов в соответствующих каталогах и проверьте папку consumerbanking \ build \ lib на наличие файла consumerbanking.jar . Gradle — построить Groovy проект В этой главе объясняется, как скомпилировать и выполнить проект Groovy с использованием файла build.gradle . Groovy Плагин Подключаемый модуль Groovy для Gradle расширяет подключаемый модуль Java и предоставляет задачи для программ Groovy. Вы можете использовать следующую строку для применения Groovy плагин. apply plugin: 'groovy' Полный файл сценария сборки выглядит следующим образом. Скопируйте следующий код в файл build.gradle . apply plugin: 'groovy' repositories { mavenCentral() } dependencies { compile 'org.codehaus.groovy:groovy-all:2.4.5' testCompile 'junit:junit:4.12' } Вы можете использовать следующую команду для выполнения сценария сборки. gradle build Макет проекта Groovy по умолчанию Плагин Groovy предполагает определенную настройку вашего проекта Groovy. src / main / groovy содержит исходный код Groovy src / test / groovy содержит Groovy тесты src / main / java содержит исходный код Java src / test / java содержит тесты Java Проверьте соответствующий каталог, где находится файл build.gradle для папки сборки. Gradle — Тестирование Тестовое задание автоматически обнаруживает и выполняет все модульные тесты в наборе исходных текстов теста. Он также генерирует отчет после завершения теста. JUnit и TestNG являются поддерживаемыми API. Тестовое задание предоставляет метод Test.getDebug (), который можно настроить на запуск, чтобы заставить JVM ожидать отладчик. Прежде чем приступить к выполнению, он устанавливает пост отладчика на 5005 . Обнаружение теста Тестовое задание определяет, какие классы являются тестовыми, проверяя скомпилированные тестовые классы. По умолчанию он сканирует все файлы .class. Вы можете установить пользовательские включения / исключения, только те классы будут сканироваться. В зависимости от используемой среды тестирования (JUnit / TestNG) для определения класса теста используются разные критерии. При использовании JUnit мы сканируем тестовые классы JUnit 3 и 4. Если какой-либо из следующих критериев соответствует, класс считается тестовым классом JUnit — Класс или суперкласс расширяет TestCase или GroovyTestCase Класс или суперкласс аннотируются @RunWith Класс или суперкласс содержат метод, аннотированный @Test При использовании TestNG мы сканируем методы, аннотированные @Test Примечание . Абстрактные классы не выполняются. Gradle также сканирует дерево наследования в файлы JAR на тестовом пути к классам. Если вы не хотите использовать обнаружение тестового класса, вы можете отключить его, установив для ScanForTestClasses значение false. Тестовая группировка JUnit и TestNG позволяют сложные группы методов тестирования. Для группировки тестовых классов и методов JUnit в JUnit 4.8 вводится понятие категорий. Тестовое задание позволяет указать категории JUnit, которые вы хотите включить и исключить. Вы можете использовать следующий фрагмент кода в файле build.gradle для группировки методов тестирования. test { useJUnit { includeCategories 'org.gradle.junit.CategoryA' excludeCategories 'org.gradle.junit.CategoryB' } } Включить и исключить отдельные тесты Класс Test имеет метод include и exclude . Эти методы могут использоваться, чтобы указать, какие тесты должны фактически выполняться. Запускайте только включенные тесты — test { include '**my.package.name/*' } Пропустить исключенные тесты — test { exclude '**my.package.name/*' } Пример файла build.gradle, как показано ниже, показывает различные параметры конфигурации. apply plugin: 'java' // adds 'test' task test { // enable TestNG support (default is JUnit) useTestNG() // set a system property for the test JVM(s) systemProperty 'some.prop', 'value' // explicitly include or exclude tests include 'org/foo/**' exclude 'org/boo/**' // show standard out and standard error of the test JVM(s) on the console testLogging.showStandardStreams = true // set heap size for the test JVM(s) minHeapSize = "128m" maxHeapSize = "512m" // set JVM arguments for the test JVM(s) jvmArgs '-XX:MaxPermSize=256m' // listen to events in the test execution lifecycle beforeTest { descriptor → logger.lifecycle("Running test: " + descriptor) } // listen to standard out and standard error of the test JVM(s) onOutput { descriptor, event → logger.lifecycle ("Test: " + descriptor + " produced standard out/err: " + event.message ) } } Вы можете использовать следующий синтаксис команды для выполнения некоторого тестового задания. gradle Gradle — Multi-Project Build Gradle может легко обрабатывать самые маленькие и самые крупные проекты. Небольшие проекты имеют один файл сборки и исходное дерево. Очень легко переварить и понять проект, который был разбит на более мелкие, взаимозависимые модули. Gradle прекрасно поддерживает этот сценарий, который состоит из нескольких проектов. Структура для мультипроектной сборки Такие сборки бывают разных форм и размеров, но у них есть некоторые общие характеристики — Файл settings.gradle в корневом или главном каталоге проекта. Файл build.gradle в корневом или главном каталоге. Дочерние каталоги, которые имеют свои собственные файлы сборки * .gradle (в некоторых многопроектных сборках могут отсутствовать сценарии сборки дочерних проектов). Файл settings.gradle в корневом или главном каталоге проекта. Файл build.gradle в корневом или главном каталоге. Дочерние каталоги, которые имеют свои собственные файлы сборки * .gradle (в некоторых многопроектных сборках могут отсутствовать сценарии сборки дочерних проектов). Для перечисления всех проектов в файле сборки вы можете использовать следующую команду. C:\> gradle -q projects Выход: ------------------------------------------------------------ Root project ------------------------------------------------------------ Root project 'projectReports' +--- Project ':api' - The shared API for the application \--- Project ':webapp' - The Web application implementation To see a list of the tasks of a project, run gradle :tasks For example, try running gradle :api:tasks В отчете приведено описание каждого проекта, если он указан. Вы можете использовать следующую команду, чтобы указать описание. Вставьте его в файл build.gradle . description = 'The shared API for the application' Указание общей конфигурации сборки В файле build.gradle в root_project общие конфигурации могут применяться ко всем проектам или только к подпроектам. allprojects { group = 'com.example.gradle' version = '0.1.0' } subprojects { apply plugin: 'java' apply plugin: 'eclipse' } Это указывает общую группу com.example.gradle и версию 0.1.0 для всех проектов. Закрытие подпроектов применяет общие конфигурации для всех подпроектов, но не к корневому проекту, как закрытие всех проектов. Конкретные конфигурации и зависимости проекта Основные подпроекты пользовательского интерфейса и утилиты также могут иметь свой собственный файл build.gradle , если у них есть особые потребности, которые еще не применяются общей конфигурацией корневого проекта. Например, проект пользовательского интерфейса обычно имеет зависимость от основного проекта. Таким образом, проекту пользовательского интерфейса нужен собственный файл build.gradle, чтобы указать эту зависимость. dependencies { compile project(':core') compile 'log4j:log4j:1.2.17' } Зависимости проекта указываются с помощью метода проекта. Gradle — Развертывание Gradle предлагает несколько способов развертывания репозиториев артефактов сборки. При развертывании подписей для ваших артефактов в хранилище Maven вы также захотите подписать опубликованный файл POM. Использование плагина Maven-publish плагин maven-publish , предоставляемый Gradle по умолчанию. Используется для публикации скрипта Gradle. Посмотрите на следующий код. apply plugin: 'java' apply plugin: 'maven-publish' publishing { publications { mavenJava(MavenPublication) { from components.java } } repositories { maven { url "$buildDir/repo" } } } Существует несколько опций публикации, когда применяется плагин Java и maven- publish . Посмотрите на следующий код, он развернет проект в удаленном хранилище. apply plugin: 'groovy' apply plugin: 'maven-publish' group 'workshop' version = '1.0.0' publishing { publications { mavenJava(MavenPublication) { from components.java } } repositories { maven { default credentials for a nexus repository manager credentials { username 'admin' password 'admin123' } // url to the releases maven repository url "http://localhost:8081/nexus/content/repositories/releases/" } } } Преобразование проекта из Maven в Gradle Для преобразования файлов Apache Maven pom.xml в файлы сборки Gradle существует специальная команда, если для этой задачи известны все используемые подключаемые модули Maven. В этом разделе следующая конфигурация pom.xml maven будет преобразована в проект Gradle. Взгляните на это. xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> Вы можете использовать следующую команду в командной строке, которая приводит к следующей конфигурации Gradle. C:\> gradle init --type pom Задача init зависит от задачи оболочки, поэтому создается оболочка Gradle. Полученный файл build.gradle выглядит примерно так: apply plugin: 'java' apply plugin: 'maven' group = 'com.example.app' version = '1.0.0-SNAPSHOT' description = """""" sourceCompatibility = 1.5 targetCompatibility = 1.5 repositories { maven { url "http://repo.maven.apache.org/maven2" } } dependencies { testCompile group: 'junit', name: 'junit', version:'4.11' } Gradle — Eclipse Integration В этой главе рассказывается об интеграции Eclipse и Gradle. Следуйте приведенным ниже инструкциям, чтобы добавить плагин Gradle для затмения. Шаг 1 — Откройте Eclipse Marketplace Прежде всего, откройте затмение, которое установлено в вашей системе. Перейти в помощь -> нажмите на EclipseMarketplace. Посмотрите на следующий скриншот. Шаг 2 — Установите плагин Buildship После клика на Eclipse Marketplace вы увидите следующий скриншот. Здесь в левой части панели поиска типа buildship . Buildship — плагин интеграции Gradle. Когда вы найдете сборку на экране, нажмите «Установить» справа. Посмотрите на следующий скриншот. После этого вы найдете следующий снимок экрана, на котором вам нужно подтвердить установку программного обеспечения, нажав на кнопку подтверждения. Посмотрите на следующий скриншот. После этого вам нужно нажать «Принять лицензионное соглашение» на следующем экране и нажать «Готово». Посмотрите на следующий скриншот. Это займет некоторое время для установки. Посмотрите на следующий скриншот. После этого он попросит перезапустить Eclipse. Там вы выберете Да . Шаг 3 — Проверка плагина Gradle При проверке мы создадим новый проект, следуя данной процедуре. В затмении перейдите в файл -> нажмите на новый -> нажмите на другие проекты. Там вы найдете следующий экран. Там выберите Gradle project и нажмите «Далее». Посмотрите на следующий снимок экрана. После нажатия следующей кнопки вы увидите следующий экран. Там вы укажете путь к домашней директории Gradle локальной файловой системы и нажмите кнопку «Далее». Посмотрите на следующий скриншот. Взгляните на следующий скриншот, здесь вы дадите название проекту Gradle. В этом уроке мы используем демопроект и нажимаем кнопку « Готово» . Взгляните на следующий скриншот, нам нужно подтвердить проект. Для этого у нас есть кнопка Готово на следующем экране. Шаг 4 — Проверка структуры каталогов После успешной установки плагина Gradle проверьте структуру каталогов демонстрационного проекта на наличие файлов и папок по умолчанию, как показано на следующем снимке экрана. Тестирование программы, JUnit JUnit — библиотека для модульного тестирования программ Java. Созданный Кентом Беком и Эриком Гаммой, JUnit принадлежит семье фреймворков xUnit для разных языков программирования, берущей начало в SUnit Кента Бека для Smalltalk. JUnit породил экосистему расширений — JMock, EasyMock, DbUnit, HttpUnit и т. д. Библиотека |