Разное

Maven apache org: Maven – Welcome to Apache Maven

Содержание

Apache Maven — веб приложение / Хабр

Если вы уже знаете, что такое Maven и хотите собрать простое модульное веб приложение (если нет- можно прочитать топик о нем и основы). Тема данного топика- как сконфигурировать pom.xml, добавить отдельный модуль к проекту, подключить плагины, развернуть приложение на сервере Apache Tomcat.

Intro

Итак, возьмем для примера простое веб приложение. Оно состоит из модулей: model (Entity и Dao классы), service (сервисы), web (сервлеты). У проекта и каждого модуля есть свой файл pom.xml. В качестве IDE будет служить eclipse, но также все справедливо и для NetBeans, IDEA. Предполагается, что в уже IDE добавлен maven plugin, сервер Tomcat.
Наши шаги:

  • создаем Maven проект
  • создаем Maven модуль
  • настраиваем maven, tomcat
  • delpoy на сервер

Создание Maven проекта

В нашей IDE создаем Maven Project, сама IDE попросит задать пункты:
выбираем skip archetype selection, Group Id = com. mycompany, Artifact Id = myproject.
Подключаем модули:

<groupId>com.mycompany</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<modules>
  <module>model</module>
  <module>service</module>
  <module>web-servlet</module>
</modules>

По-дефолту maven подключит JRE версии 1.4, нам нужна 1.6, подключаем плагин:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.5.1</version>
      <configuration>
        <source>1.6</source>
        <target>1.6</target>
      </configuration>
    </plugin>
  </plugins>
</build>

У модуля могут быть зависимости от других библиотек, хорошая практика указывать версию зависимости не в pom. xml модуля, а проекта, в dependencyManagment:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1-b01</version>
    </dependency>
  </dependencies>
</dependencyManagement>

Создание Maven модуля

В IDE правой кнопкой по проекту- создаем Maven Module. В pom.xml этого модуля указываем проект:

<packaging>war</packaging>
<parent>
  <groupId>com.mycompany</groupId>
  <artifactId>myproject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</parent>

В зависимостях также можно указывать наши модули (в данном случае service). Повторюсь, если в pom.xml проекта указали версию библиотеки, в pom.xml модуля версию можно (и лучше)не указывать:

<dependencies>
  <dependency>
    <groupId>com. mycompany</groupId>
    <artifactId>service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
</dependency>

Также нам нужен плагин, чтобы приложение по команде в IDE Maven-> build развертывалось на сервере. Замечу, что для Tomcat 6 и 7 строки url будут различны:

<build>
  <finalName>project</finalName>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>tomcat-maven-plugin</artifactId>
      <version>1.1</version>
      <configuration>
        <url>http://localhost:8080/manager/html</url><!-- для Tomcat 7 !-->
        <!--<url>http://localhost:8080/manager</url>!--><!-- для Tomcat 6 !-->
        <server>tomcatServer</server>
        <path>/project</path>
      </configuration>
    </plugin>
  </plugins>
</build>

Конфигурирование Maven, Tomcat

Плагин Maven`а должен знать, логин: пароль Tomcat для подключения к Tomcat manager. Открываем(если нет, создаем) файл в домашней директории /.m2/settings.xml, после этого в настойках IDE-> Maven-> User Settings-> Update Settings. Собственно settings.xml:

<settings>
  <servers>
    <server>
      <id>tomcatServer</id>
      <username>admin</username>
      <password>password</password>
    </server>
  </servers>
</settings>

В директории Tomcat сonf/tomcat-users.xml добавляем права на тот самый manager:

<tomcat-users>
  <role rolename="manager"/>
  <role rolename="manager-gui"/>
  <role rolename="admin"/>
  <user username="admin" password="password" roles="admin,manager,manager-gui"/>
</tomcat-users>

Стоит отметить, что IDE может запускать Tomcat с настройками из workspace, либо из директории Tomcat. Мы выбрали второй вариант, поэтому в самой IDE ставим параметры сервера- Server Location-> Use Tomcat installation.

Deploy на сервер

Запускаем из IDE наш сервер Tomcat. Назначаем жизненный цикл Maven для модуля: модуль-> Run As-> Maven build. В строчку Goals добавляем tomcat:redeploy, запускаем. Итак, модуль задеплоился на localhost:8080/project/. Все пляшут и поют. В Eclipse, весьма удобно делается очередной деплой по Shift+Atl+X, M.

Полезные ссылки:
maven.apache.org/guides
tomcat-maven-plugin

Что такое Maven, и где он обитает?

Мавен – это фреймворк автоматической сборки проектов с широким функционалом – достаточно широким, чтобы неподготовленный разработчик, зашедший в эти дебри, заработал головную боль, сломал себе проект и ногу, а то и обе. Сегодня мы попробуем буквально за 10 минут освоить главные фишки мавен : управление зависимостями, в том числе транзитивными, и автоматическую сборку. Если вдруг вы не знакомы с понятием транзитивных зависимостей, это цепочка A ← B ← C, где A зависит от В, а В от С. Maven позволяет не запариваться по этому поводу, и если вам нужен именно А, указывать только его, об остальном позаботится за вас.

Я предполагаю, что у вас уже установлена java, если нет, то срочно это исправьте. Maven использует декларативный подход, где все инструкции записываются на языке разметки POM – обычном XML с рядом предопределенных сущностей. В данной статье примеры будут достаточно просты, так что курсы XML пока можно отложить.

Установка Maven.

Задача проста.

  1. Идем на главный сайт проекта, скачиваем подходящий для вашей системы архив и распаковываем в удобную директорию, желательно без кириллицы в названии.
  2. Прописываем директорию в переменные окружения PATH.
  3. Рекомендую проверить наличие в PATH JAVA_HOME.
Первый проект Maven

Все современные IDE позволяют создать проект maven буквально двумя кликами, но мы не станем срезать путь. Для создания простейшей директории запустите в консоли команду:

        mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=test-app
    

Мы создали классический «Hello, world», разберём его в деталях. Первое, во что мы упираемся, – это archetype, так в Maven называются шаблоны. Команда archetype:generate создает проект по архетипу. В нашем случае id по умолчанию приравнивается к 15 или maven-archetype-quickstart.

Чтобы задать шаблон, просто добавьте в команду

        -DarchetypeArtifactId=maven-archetype-quickstart
    

Полный список доступных шаблонов можно посмотреть на сайте или отдельно в консоли вбить mvn archetype:generate. Следом идет archetypeGroupId – что-то вроде пространства имён шаблонов. GroupId – обычно используется для указания производителя. Artifact – это название нашего проекта. Собственно, артефакты – это главная сущность в Maven, из них состоит всё.

На выходе получаем такую структуру:

        test-app
|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- com
    |           `-- mycompany
    |               `-- app
    |                   `-- App.java
    `-- test
        `-- java
            `-- com
                `-- mycompany
                    `-- app
                        `-- AppTest.java
    

В корне видим сгенерированный файл 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/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.mycompany.app</groupId>
  <artifactId>test-app</artifactId>
  <version>1.0-SNAPSHOT</version>
 
  <properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
    

Большая часть этого файла сгенерирована и не нуждается в корректировке на стартовом этапе, кроме тега dependencies, именно здесь нужно будет объявлять зависимоcти, каждую в отдельном теге dependency. Сейчас там указана только библиотека для тестирования junit.

Важные тонкости

Напоследок хочу обратить внимание на несколько пунктов. По умолчанию Maven работает с java 1.6, чтобы это поправить, нужно внутри тега project добавить следующий код, заменив {Ваша версия java} на соответствующий номер.

        <properties>
        <maven.compiler.release>{Ваша версия java}</maven.compiler.release>
    </properties>
 
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3. 8.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    

Поздравляю, проделанной работы достаточно, чтобы прописать команду сборки:

        mvn package
    

Фреймврок автоматически пройдет цепочку из 6 этапов, и теперь остается только запустить:

        java -cp target/test-app-1.0-SNAPSHOT.jar com.mycompany.app.App
    

Наслаждаемся результатом трудов! =)

Этого должно быть достаточно для базового понимания Maven. Если вы загорелись идеей освоить этот инструмент и использовать весь его функционал, стоит начать с детального изучения super POM, шаблонов и плагинов. Удачи вам в освоении новых рубежей 😉

Apache Maven: деплой в JFrog Artifactory

Задача: деплоить результаты билда Maven в JFrog Artifactory.

Пример с выполняется плагином maven-deploy-plugin, но для некоторых случаев может пригодиться плагин artifactory-maven-plugin.

Пример ошибки без настроек деплоя вообще:

$ mvn clean deploy
...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project parent: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]
...

Редактируем корневой pom.xml, добавляем настройки для maven-deploy-plugin:

    <distributionManagement>
        <repository>
            <id>engineering</id>
            <name>my-proj-releases</name>
            <url>https://my-proj.artifactoryonline.com/my-proj/snapshots-local</url>
        </repository>
        <snapshotRepository>
            <id>my-proj</id>
            <name>my-proj-snapshots</name>
            <url>https://my-proj. artifactoryonline.com/my-proj/snapshots-local</url>
        </snapshotRepository>
    </distributionManagement>

Отдельно создаём файл maven-settings.xml (или прописываем в ~/.m2/settings.xml) с настройками доступа:

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"
          xmlns="http://maven.apache.org/SETTINGS/1.1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <servers>
        <server>
            <id>my-proj</id>
            <username>someuser</username>
            <password>somepass</password>
        </server>
    </servers>

</settings>

Ещё раз запускаем билд и деплой:

$ mvn clean deploy
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

Готово.

Развертывание веб-приложения с помощью плагина tomcat7-maven-plugin

28 сентября, 2016 rius
Итак, вам понадобилось развернуть приложение на сервере приложений Tomcat в конце сборки мавеном. Для этого есть плагин tomcat7-maven-plugin, я использовал его для Tomcat 8, бегающего на java 8. Подробности далее.

Для развертывания нужно выполнить несколько действий руками:

1. В Tomcat8 прописываем пользователя admin/password с ролями «manager-gui,manager-script» в файле tomcat-users.xml (это минимальный набор для поставленной задачи, вы можете добавлять другие роли):

<user username="admin" password="password" roles="manager-gui,manager-script"></user>

<user username=»admin» password=»password» roles=»manager-gui,manager-script»></user>

2. Добавляем в мавен файл settings.xml по пути C:\Users\%username%\.m2 (для Windows):

<settings>
    <servers>
        <server>
            <id>TomcatServer</id>
            <username>admin</username>
            <password>password</password>
        </server>
    </servers>
</settings>

<settings>
<servers>
<server>
<id>TomcatServer</id>
<username>admin</username>
<password>password</password>
</server>
</servers>
</settings>

3. В Windows возможна ошибка (видна в вебморде по адресу http://localhost:8080/manager/html), связанная с тем, что Томкат не может вычистить файлы распакованного WAR.

FAIL - Unable to delete [C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\app]. 
The continued presence of this file may cause problems.

FAIL — Unable to delete [C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\app].
The continued presence of this file may cause problems.

Лечится редактированием файла conf/context.xml — добавить antiResourceLocking=»true»:

<context antiResourceLocking="true">
...
</context>

<context antiResourceLocking=»true»>

</context>

4. Вставка в pom.xml:

    <build>
        <plugins>
           <plugin>
                <groupid>org.apache.tomcat.maven</groupid>
                <artifactid>tomcat7-maven-plugin</artifactid>
                <version>${tomcat. plugin.version}</version>
                <configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <server>TomcatServer</server>
                    <username>admin</username>
                    <password>password</password>
                    <path>/client</path>
                    <update>true</update>
                </configuration>
            </plugin>
        </plugins>
    </build>

<build>
<plugins>
<plugin>
<groupid>org.apache.tomcat.maven</groupid>
<artifactid>tomcat7-maven-plugin</artifactid>
<version>${tomcat.plugin.version}</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
<username>admin</username>
<password>password</password>
<path>/client</path>
<update>true</update>
</configuration>
</plugin>
</plugins>
</build>

Обратите внимание на ссылку в настройках: http://localhost:8080/manager/text, а не http://localhost:8080/manager/html.

5. Рестартим Томкат, если нужно подхватить изменения в конфигах. Ожидается, что он поднимается на порте 8080.

6. Выполняем для проекта сборку мавеном по команде: mvn clean package tomcat7:redeploy . Обратите внимание- в цели указан tomcat7.

7. Открываем ссылку http://localhost:8080/client

8. PROFIT 🙂

from your own site.

Переходим на Java 10: проблемы и решения

Итак, прошел уже месяц с выхода Java 10. Уже даже успел подойти первый апдейт. А это значит — пора переходить и нам 🙂 Вслед за переходом на Java 9.

Установка

Джаву, как всегда, можно скачать и установить вручную. Но это не мой путь. Я обычно предпочитаю устанавливать из готовых пакетов (которые, к сожалению, выходят месяц-два спустя). Например, так:

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java10-installer

Проблема с IntelliJ IDEA

Первая проблема, с которой я столкнулся, была в IDE. Я сидел на IntelliJ IDEA 2017.3. И при добавлении JDK 10 в проект идея отказывалась признавать корневую директорию JDK как «The selected directory is not a valid home for JDK». Проблема легко решается переходом на 2018.1.2. Но должен предупредить — в новой версии идеи довольно много неприятных мелких багов. Надеюсь, ситуация в Эклипсе получше.

Проблема с maven-compiler-plugin

Первым делом после подключения JDK 10 я попробовал собрать проект мавеном. Не получилось:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project push: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile failed.: IllegalArgumentException -> [Help 1]</em>

Гуглинг помог быстро найти проблему, а именно в maven-compiler-plugin. Как оказалось, этот плагин использует внутри старую версию библиотеки asm, которая не поддерживает Java 10. К счастью, ее легко можно пофиксить, изменив зависимость в плагине:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>3.7.0</version>
   <configuration>
       <source>10</source>
       <target>10</target>
   </configuration>
   <dependencies>
       <dependency>
           <groupId>org.ow2.asm</groupId>
           <artifactId>asm</artifactId>
           <version>6.1.1</version>
       </dependency>
   </dependencies>
</plugin>

Проблема с maven-surefire-plugin

Проект собрался. Настало время билда с тестами. И опять получился нежданчик. Теперь уже в maven-surefire-plugin:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on project Blynk: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test failed.: NullPointerException

Я особо не искал причину, а по опыту переезда на девятку — просто проапдейтил плагин к последней версии 2.21.0, что и решило проблему.

Опять IDE

Сборка с тестами прошла успешно, и ничего не отвалилось, что уже довольно неплохо (в отличие от девятки). Теперь я попробовал запустить тесты из идеи. И получил довольно странную ошибку:

Release version 11 not supported

Выяснилось вот что. Во-первых, «Language Level» в модулях проекта оказался на Level 11. Во-вторых, настройка «Module JDK» в каждом из модулей была на 9-ке. Похоже на какую-то багу новой Идеи. В общем, после проставления корректных версий вручную — тесты запустились и успешно прошли.

Travis CI

Так как наш проект open-source, мы используем бесплатный и публичный Travis Cloud для прогонки тестов. 10-ка все еще не имеет нативной поддержки от Тревиса, поэтому пришлось искать обходные пути.

Travis.yml:

language: java

before_install:
 - wget https://github.com/sormuras/bach/raw/master/install-jdk.sh

matrix:
 include:
     - env: JDK='OpenJDK 10'
       install: . ./install-jdk.sh -F 10 -L GPL</em>

Lombok

Если вы используете или собираетесь использовать библиотеку Lombok в вашем проекте, то с десяткой придется подождать. Так как Lombok fails with JDK 10. Хотя, с другой стороны — это отличный повод выпилить его из вашего проекта.

P. S. 10-ка уже 2 дня крутится на наших продакшн-серверах. Пока никаких проблем выявлено не было. В отличие от 9-ки, никакого изменения по перформансу или потреблении памяти замечено не было.

Я уже перевел часть кода на var. Пока хорошо. Вот, например, кусок кода, который мне нравится больше всего:

А вы уже попробовали Java 10?

Для тех, кто же все-таки решил перейти на 10-ку, — вот отличная рекомендация, когда использовать var:

Похожие статьи:

На нашем YouTube канале появились новые видеоролики.Обзор Vertu Signature Touch 2015:Обзор Alcatel X1…

В выпуске: Бесплатные сертификаты от AWS, рейтинг языков программирования, статьи…

Приглашаем наших читателей принять участие в опросе об ИТ-литературе….

В этом году в международном хакатоне NASA SpaceApps Challenge 15 310 участников…

На початку 2018 року EPAM одержав перший проект robotic process automation (RPA),…

Maven — загрузка Apache Maven

Загрузка Apache Maven 3.6.3

Apache Maven 3.6.3 — это последняя версия, рекомендованная для всех пользователей.

Текущее выбранное зеркало загрузки
https://apache-mirror.rbc.ru/pub/apache/ .
Если у вас возникнут проблемы с этим зеркалом,
выберите другое зеркало.
Если все зеркала выходят из строя, значит
резервное копирование
зеркала
(в конце списка зеркал), которые должны быть доступны.Вы также можете обратиться к
полный список
зеркала.

Системные требования

Для выполнения

Java Development Kit (JDK) Maven 3.3+ требуется JDK 1.7 или выше — они по-прежнему позволяют выполнять сборку с 1.3 и другими версиями JDK.
с помощью Toolchains
Память Нет минимальных требований
Диск Для самой установки Maven требуется около 10 МБ.В дополнение к этому дополнительное дисковое пространство будет
использоваться для вашего локального репозитория Maven. Размер вашего локального репозитория будет варьироваться в зависимости от использования, но ожидайте при
минимум 500 МБ.
Операционная система Нет минимальных требований. Сценарии запуска включены в качестве сценариев оболочки и пакетных файлов Windows.

Файлы

Maven для вашего удобства распространяется в нескольких форматах.Просто выберите
готовый бинарный дистрибутив и следуйте инструкциям
Инструкция по установке.
Используйте исходный архив, если вы собираетесь собрать Maven самостоятельно.

Чтобы защититься от поврежденных загрузок / установок, настоятельно рекомендуется
проверить подпись
пакетов выпуска против общедоступных КЛЮЧЕЙ, используемых Apache Maven
Разработчики.

Предыдущие версии

Настоятельно рекомендуется использовать последнюю версию Apache Maven, чтобы воспользоваться новейшими функциями и исправлениями ошибок.

Если вы все еще хотите использовать старую версию, вы можете найти дополнительную информацию в
История выпусков Maven и возможность загрузки файлов из
архивы для версий 3.0.4+
и устаревшие архивы для более ранних выпусков.

Управление пакетами с помощью Maven

Используйте подключаемый модуль Content Package Maven для интеграции задач управления пакетами в свои проекты Maven. Цели и параметры плагина позволяют автоматизировать многие задачи, которые вы обычно выполняете с помощью страницы диспетчера пакетов или командной строки FileVault:

  • Создавать новые пакеты из файлов в файловой системе.
  • Установите и удалите пакеты на сервере CRX или CQ.
  • Сборка пакетов, которые уже определены на сервере.
  • Получите список пакетов, установленных на сервере.
  • Удалить пакет с сервера.

Добавление подключаемого модуля Maven пакета содержимого в файл POM

Чтобы использовать подключаемый модуль Content Package Maven, добавьте следующий элемент подключаемого модуля внутрь элемента сборки вашего POM-файла:

  <плагин>
  com.day.jcr.vault 
  контент-пакет-maven-плагин 
  0.0.24 
 <конфигурация>
       
 

  

Чтобы позволить Maven загрузить подключаемый модуль, используйте профиль, указанный в разделе «Получение подключаемого модуля Maven пакета содержимого» на этой странице.

Цели подключаемого модуля Maven пакета содержимого

Цели и параметры целей, которые предоставляет плагин Content Package, описаны в следующих разделах.Параметры, описанные в разделе «Общие параметры», можно использовать для большинства целей. Параметры, применимые к одной цели, описаны в соответствующем разделе.

Префикс подключаемого модуля

Префикс плагина — content-package. Используйте этот префикс для выполнения цели из командной строки, как в следующем примере:

  mvn content-package: build
  

Префикс параметра

Если не указано иное, цели и параметры подключаемого модуля используют префикс хранилища, как в следующем примере:

  mvn content-package: установить -Dvault.targetURL = "https://192.168.1.100:4502/crx/packmgr/service.jsp"
  

Прокси

Цели, которые используют прокси для сервера CRX или CQ, используют первую действительную конфигурацию прокси, найденную в настройках Maven. Если конфигурация прокси-сервера не найдена, прокси-сервер не используется. См. Параметр useProxy в разделе «Общие настройки».

Общие параметры

Параметры в следующей таблице являются общими для всех целей, за исключением случаев, указанных в столбце «Цели».

Сборка

Имя Тип Обязательно Значение по умолчанию Описание Голы
failOnError логическое Нет ложь Значение истинно. приводит к сбою сборки при возникновении ошибки.Значение false заставляет сборку игнорировать ошибку. Все голы кроме пакета.
наименование Строка: Да
установка: Нет
rm: Да
Сборка: Нет по умолчанию.
install: значение свойства artifactId проекта Maven.
Имя пакета, над которым нужно действовать. Все голы кроме л.
пароль Строка Есть админ Пароль, используемый для аутентификации на сервере CRX. Все голы кроме пакета.
serverId Строка Нет ID сервера, с которого можно получить имя пользователя и пароль для аутентификации. Все голы кроме пакета.
targetURL Строка Есть http: // localhost: 4502/
crx / packmgr /
service.jsp
URL-адрес API службы HTTP диспетчера пакетов CRX. Все голы кроме пакета.
таймаут внутр Нет 5 Тайм-аут соединения для связи со службой диспетчера пакетов в секундах. Все голы кроме пакета.
использовать прокси логическое Нет правда Определяет, использовать ли конфигурации прокси из файла настроек Maven. Значение истинно вызывает использование первой найденной активной конфигурации прокси для запросов прокси к диспетчеру пакетов.Значение false означает, что прокси-сервер не используется. Все голы кроме пакета.
идентификатор пользователя Строка Есть админ Имя пользователя для аутентификации на сервере CRX. Все голы кроме пакета.
подробный логическое Нет ложь Включает или отключает подробное ведение журнала. Значение истинно включает подробное ведение журнала. Все голы кроме пакета.

сборка

Создает пакет содержимого, который уже определен в экземпляре AEM.

ПРИМЕЧАНИЕ

Эту цель не нужно выполнять в проекте Maven.

Параметры

Все параметры для цели сборки описаны в разделе «Общие параметры».

Пример

В следующем примере создается пакет workflow-mbean, установленный на экземпляре AEM с IP-адресом 10.36.79.223. Цель выполняется с помощью следующей команды:

  mvn content-package: build
  

Следующий файл POM находится в текущем каталоге инструмента командной строки. POM указывает имя пакета и URL-адрес службы пакета.

  
   4.0.0 
   com.adobe.example 
   пример пакета 
   0.0.1-SNAPSHOT 
    <сборка>
        <плагины>
     <плагин>
   com.day.jcr.vault 
   контент-пакет-maven-плагин 
   0.0.24 
  <конфигурация>
    workflow-mbean 
    истина 
    https: // 10.36.79.223: 4502 / crx / packmgr / service.jsp 
  
     
 
    

  

установить

Устанавливает пакет в репозиторий. Для выполнения этой цели не требуется проект Maven. Цель привязана к этапу установки жизненного цикла сборки Maven.

Параметры

В дополнение к следующим параметрам см. Описания в разделе «Общие параметры».

Имя Тип Обязательно Значение по умолчанию Описание
артефакт Строка Нет Значение свойства artifactId проекта Maven. Строка формы groupId: artifactId: version [: упаковка].
artifactId Строка Нет ID артефакта для установки
идентификатор группы Строка Нет GroupId артефакта для установки
установить логическое Нет правда Определяет, следует ли автоматически распаковывать пакет при его загрузке.Значение true распаковывает пакет, а false не распаковывает.
локальный Репозиторий орг.apache.maven.
артефакт. репозиторий.
Репозиторий артефактов
Нет Значение системной переменной localRepository. Локальный репозиторий Maven. Вы не можете настроить этот параметр, используя конфигурацию плагина. Системное свойство используется всегда.
упаковка Файл java.io.File Нет Основной артефакт, определенный для проекта Maven. Имя устанавливаемого файла пакета.
упаковка Строка Нет молния Тип упаковки артефакта для установки
pomRemoteRepositories java.util.List Есть Значение свойства remoteAtifactRepositories, которое определено для проекта Maven. Это значение нельзя настроить с помощью конфигурации плагина. Значение необходимо указать в проекте.
проект орг.apache.maven. Проект
.MavenProject
Есть Проект, для которого настроен плагин. Проект Maven. Проект подразумевается, потому что проект содержит конфигурацию плагина.
идентификатор репозитория (POM)
идентификатор репозитория (командная строка)
Строка Нет температура Идентификатор репозитория, из которого извлекается артефакт.В POM используйте repositoryID. В командной строке используйте repoID.
repositoryUrl (POM)
repoURL (командная строка)
Строка Нет URL-адрес репозитория, из которого извлекается артефакт. В POM используйте repositoryURL. В командной строке используйте repoURL.
версия Строка Нет Версия устанавливаемого артефакта.
Пример

В следующем примере создается пакет, содержащий комплект OSGi workflow-mbean (см. Пример для цели сборки), а затем устанавливается пакет. Поскольку цель установки привязана к фазе установки пакета, следующая команда выполняет цель установки:

  mvn установить
  
  
   4.0.0 
   com.adobe.example.myapp 
   рабочий процесс-mbean 
   0.0.3-SNAPSHOT 

  <сборка>
    <плагины>
      <плагин>
         com.day.jcr.vault 
         контент-пакет-maven-плагин 
         0.0.24 
        <конфигурация>
           каталог-jcr 
           https: // 10.36.79.223: 4502 / crx / packmgr / service.jsp 
        
        <казни>
          <выполнение>
            <цели>
               пакет 
            
          
        
      
    
  

  

лс

Список пакетов, развернутых в диспетчере пакетов.

Параметры

Все параметры цели ls описаны в разделе «Общие параметры».

Пример

В следующем примере перечислены пакеты, установленные на экземпляре AEM с IP-адресом 10.36.79.223. Цель выполняется с помощью следующей команды:

  mvn content-package: ls
  

Следующий файл POM находится в текущем каталоге инструмента командной строки. POM указывает URL-адрес службы пакета.

  
   4.0.0 
   com.adobe.example 
   пример пакета 
   0.0.1-SNAPSHOT 
    <сборка>
        <плагины>
     <плагин>
   com.day.jcr.vault 
   контент-пакет-maven-плагин 
  <версия> 0.0,24 
  <конфигурация>
       https://10.36.79.223:4502/crx/packmgr/service.jsp 
  
      
   
     

  

пог.м

Удаляет пакет из диспетчера пакетов.

Параметры

Все параметры rm-цели описаны в разделе «Общие параметры».

Пример

В следующем примере удаляется пакет workfow-mbean, установленный на экземпляре AEM с IP-адресом 10.36.79.223. Цель выполняется с помощью следующей команды:

  mvn контент-пакет: rm
  

Следующий файл POM находится в текущем каталоге инструмента командной строки. POM указывает URL-адрес службы пакета и имя пакета.

  
   4.0.0 
   com.adobe.example 
   пример пакета 
   0.0.1-SNAPSHOT 
    <сборка>
        <плагины>
     <плагин>
   com.day.jcr.vault 
   контент-пакет-maven-плагин 
   0.0.24 
  <конфигурация>
                     workflow-mbean 
       https: // 10.36.79.223: 4502 / crx / packmgr / service.jsp 
  
      
   
     

  

удалить

Удаляет пакет. Пакет остается на сервере в деинсталлированном состоянии.

Параметры

Все параметры цели удаления описаны в разделе «Общие параметры».

Пример

В следующем примере удаляется пакет workflow-mbean, установленный на экземпляре AEM с IP-адресом 10.36.79.223. Цель выполняется с помощью следующей команды:

  mvn content-package: удалить
  

Следующий файл POM находится в текущем каталоге инструмента командной строки. POM указывает имя пакета и URL-адрес службы пакета.

  
   4.0.0 
   com.adobe.example 
   рабочий процесс-mbean 
   0.0.3-SNAPSHOT 
    <сборка>
        <плагины>
     <плагин>
   com.day.jcr.vault 
   контент-пакет-maven-плагин 
   0.0.24 
  <конфигурация>
    workflow-mbean 
    истина 
    https: // 10.36.79.223: 4502 / crx / packmgr / service.jsp 
  
     
 
    

  

упаковка

Создает пакет содержимого. Конфигурация цели пакета по умолчанию включает содержимое каталога, в котором сохраняются скомпилированные файлы. Для выполнения цели пакета необходимо, чтобы завершился этап сборки компиляции. Цель пакета привязана к фазе пакета жизненного цикла сборки Maven.

Параметры

В дополнение к следующим параметрам см. Описание параметра name в разделе «Общие параметры».

Имя Тип Обязательно Значение по умолчанию Описание
архив орг.apache.maven.
архиватор.
MavenArchiveConfiguration
Нет Используемая конфигурация архива.См. Документацию по Maven Archiver.
построенContentDirectory java.io.File Есть Значение выходного каталога сборки Maven. Каталог, содержащий содержимое для включения в пакет.
зависимости java.util.List Нет
встроенная цель java.lang.String Нет
встроенные java.util.List Нет
failOnMissingEmbed логическое Есть ложь Значение true приводит к сбою сборки, если встроенный артефакт не обнаружен в зависимостях проекта. Значение offalse заставляет сборку игнорировать ошибку.
filterSource java.io.File Нет Файл, определяющий источник фильтра рабочей области.Фильтры, указанные в конфигурации и введенные через emebeds или подпакеты, объединяются с содержимым файла.
фильтры com.day.jcr.
vault.maven.pack.impl.
DefaultWorkspaceFilter
Нет Содержит фильтрующие элементы, определяющие содержимое пакета. При выполнении фильтры включаются в файл filter.xml. См. Раздел «Использование фильтров» ниже.
final Имя java.lang.String Есть FinalName, определенное в проекте Maven (этап сборки). Имя созданного ZIP-файла пакета без расширения файла .zip.
группа java.lang.String Есть GroupID, определенный в проекте Maven. GroupId созданного пакета содержимого. Это значение является частью целевого пути установки для пакета содержимого.
выходной каталог java.io.File Есть Каталог сборки, определенный в проекте Maven. Локальный каталог, в котором сохранен пакет содержимого.
префикс java.lang.String Нет
проект орг.apache.maven. Проект
.MavenProject
Есть Проект Maven.
Объекты java.util.Map Нет Дополнительные свойства, которые вы можете установить в файле properties.xml. Эти свойства не могут перезаписывать следующие предварительно определенные свойства:

  • группа: используйте параметр группы для установки
  • Имя

  • : используйте параметр имени для установки
  • Версия

  • : используйте параметр версии для установки
  • Описание

  • : Набор из описания проекта
  • groupId: идентификатор группы дескриптора проекта Maven
  • artifactId: artifactId дескриптора проекта Maven
  • Зависимости

  • : используйте параметр dependencies, чтобы установить
  • createdBy: значение пользователя.свойство системы имен
  • created: Текущее системное время
  • requiresRoot: Используйте параметр requiresRoot для установки
  • packagePath: автоматически создается из группы и имени пакета
требуется Root логическое Есть ложь Определяет, требуется ли пакету root. Это станет свойством requiresRoot свойств.xml файл.
субпакетов java.util.List Нет
версия java.lang.String Есть Версия, определенная в проекте Maven Версия пакета содержимого.
рабочий каталог java.io.File Есть Каталог, определенный в проекте Maven (этап сборки). Каталог, содержащий содержимое для включения в пакет.
Использование фильтров

Используйте элемент фильтров для определения содержимого пакета. Фильтры добавляются в элемент workspaceFilter в файле META-INF / vault / filter.xml пакета.

В следующем примере фильтра показана используемая структура XML:

  <фильтр>
    / apps / myapp 
    объединить 
       <включает>
               / apps / myapp / install / 
               / apps / myapp / components 
       
       <исключает>
               / apps / myapp / config / * 
       

  

Режим импорта

Элемент режима определяет, как содержимое репозитория изменяется при импорте пакета.Могут использоваться следующие значения:

  • Объединить: Добавлено содержимое пакета, которого еще нет в репозитории. Содержимое как в пакете, так и в репозитории не изменилось. Никакой контент не удаляется из репозитория.
  • Заменить: Содержимое пакета, которого нет в репозитории, добавляется в репозиторий. Контент в репозитории заменяется соответствующим контентом в пакете. Контент удаляется из репозитория, если его нет в пакете.
  • Обновление: Содержимое пакета, которого нет в репозитории, добавляется в репозиторий. Контент в репозитории заменяется соответствующим контентом в пакете. Существующий контент удаляется из репозитория.

Если фильтр не содержит элемента mode , используется значение по умолчанию replace .

Пример

В следующем примере создается пакет, содержащий комплект OSGi workflow-mbean. Файл POM определяет каталог jcr_root как значение свойства builtContentDirectory.Каталог jcr_root содержит файл JAR пакета в структуре каталогов, который отражает репозиторий:

jcr_root / apps / myapp / install / workflow-mbean-0.03-SNAPSHOT.jar

Поскольку цель привязана к фазе сборки пакета, следующая команда выполняет цель пакета:

мвн пакет

  
   4.0.0 
   com.adobe.example.myapp 
   рабочий процесс-mbean 
   0.0.3-SNAPSHOT 

  <сборка>
    <плагины>
      <плагин>
         com.day.jcr.vault 
         контент-пакет-maven-плагин 
         0.0.24 
        <конфигурация>
           каталог-jcr 
           https: // 10.36.79.223: 4502 / crx / packmgr / service.jsp 
        
        <казни>
          <выполнение>
            <цели>
               пакет 
            
          
        
      
    
  

  

Вместо того, чтобы выражать цель пакета в разделе плагина выполнения , вы можете использовать content-package в качестве значения проекта упаковка элемент:

  
   4.0.0 
   com.adobe.example.myapp 
   рабочий процесс-mbean 
   0.0.3-SNAPSHOT 
  <упаковка> пакет содержимого 
  <сборка>
    <плагины>
      <плагин>
         com.day.jcr.vault 
         контент-пакет-maven-плагин 
         0.0.24 
        <конфигурация>
           каталог-jcr 
           https://10.36.79.223:4502/crx/packmgr/service.jsp 
        
      
    
  

  

справка

Параметры
Имя Тип Обязательно Значение по умолчанию Описание
деталь логическое Нет ложь Определяет, отображать ли все устанавливаемые свойства для каждой цели.Значение true отображает все настраиваемые свойства.
гол Строка Нет Имя цели, для которой отображается справка. Если значение не указано, отображается справка по всем целям.
отступ Размер внутр Нет 2 Количество пробелов, используемых для отступа каждого уровня. Если вы указываете значение, оно должно быть положительным.
строка Длина внутр Нет 80 Максимальная длина отображаемой строки.Если вы указываете значение, оно должно быть положительным.

Получение подключаемого модуля Maven пакета содержимого

Плагин доступен из общедоступного репозитория Adobe. Чтобы загрузить плагин, добавьте следующий профиль Maven в файл настроек Maven и активируйте его. Когда вы используете команду Maven, плагин при необходимости загружается в ваш локальный репозиторий.

ПРИМЕЧАНИЕ

Репозиторий Adobe Public Releases недоступен для просмотра, поэтому переход к URL-адресу репозитория с помощью веб-браузера приводит к ошибке «Не найдено».Однако Maven может получить доступ к каталогам репозитория.

  <профиль>
     Adobe-Public 
    <активация>
          false 
    
    <свойства>
          Adobe-Public-Release 
          Общедоступные версии Adobe 
          https: // репо.adobe.com/nexus/content/groups/public 
    
    <репозитории>
         <репозиторий>
              Adobe-Public-Release 
              Публичный репозиторий Adobe Basel 
              https://repo.adobe.com/nexus/content/groups/public 
             <выпуски>
                  true 
                  никогда 
             
             <снимки>
                  false 
             
         
     
     
         
              Adobe-Public-Release 
              Публичный репозиторий Adobe Basel 
              https: // репо.adobe.com/nexus/content/groups/public 
             <выпуски>
                  true 
                  никогда 
             
             <снимки>
                  false 
             
         
     

  

Встраивание пакетов OSGi в пакет содержимого

Используйте подключаемый модуль Content Package Maven для встраивания пакетов OSGi в пакет содержимого.Чтобы встроить пакет, реализуйте следующие конфигурации:

  • Комплект должен быть объявлен как зависимость проекта Maven.
  • Конфигурация подключаемого модуля ссылается на пакет, используя требуемый путь пакета в пакете.

В следующем примере POM создает пакет, содержащий пакет Apache Sling JCR UserManager. В пакете пакет JAR находится в папке jcr_root / apps / myapp / install :

  

  4.0.0 
    com.adobe.example.myapp 
  встроенный пример 
 <упаковка> пакет содержимого 
 <версия> 1.0.0-SNAPSHOT 

   <сборка>
 <плагины>
     <плагин>
         com.day.jcr.vault 
       контент-пакет-maven-плагин 
       0.0.24 
       true 
      <конфигурация>
   <фильтры>
       <фильтр>
     / apps / myapp 
       
    
    <встраиваемые>
       <встроенный>
     org.apache.sling 
     org.apache.sling.jcr.jackrabbit.usermanager 
     / apps / myproject / install 
        
    
       
  
    
    
    <зависимости>
 <зависимость>
       org.apache.sling 
       org.apache.sling.jcr.jackrabbit.usermanager 
      <версия> 2.2.0 
 
    


  

Включение эскизного изображения или файла свойств в пакет

Замените файлы конфигурации пакета по умолчанию, чтобы настроить свойства пакета. Например, включите миниатюрное изображение, чтобы различать пакет в диспетчере пакетов и общедоступном пакете.

В пакете файлы, относящиеся к FileVault, находятся в папке / META-INF / vault. Исходные файлы могут быть расположены в любом месте вашей файловой системы.В файле POM определите ресурсы сборки для копирования исходных файлов в целевой / vault-work / META-INF для включения в пакет.

Следующий код POM добавляет файлы из папки META-INF источника проекта в пакет:

  <сборка>
    <ресурсы>
        
        <ресурс>
             $ {basedir} / src / main / content / META-INF 
            ../vault-work/META-INF 
        
    

  

Следующий код POM добавляет в пакет только эскизное изображение. Изображение-миниатюра должно иметь имя thumbnail.png и находиться в папке META-INF / vault / definition пакета. В этом примере исходный файл находится в папке / src / main / content / META-INF / vault / definition проекта:

  <сборка>
    <ресурсы>
        
        <ресурс>
             $ {basedir} / src / main / content / META-INF / vault / definition 
            ../vault-work/META-INF/vault/definition 
        
    

  

Использование архетипов для создания проектов AEM

Для создания проектов AEM доступны несколько архетипов Maven. Используйте архетип, соответствующий вашим целям развития:

Каждый архетип создает следующие предметы:

  • Структура папок проекта.
  • файлов POM.
  • Файлы конфигурации FileVault.

Артефакты архетипов доступны в общедоступном репозитории Adobe Maven. Чтобы загрузить и выполнить архетип, определите архетип и репозиторий Adobe, используя параметры архетипа Maven: команда generate:

  mvn архетип: сгенерировать -DarchetypeGroupId = com.day.jcr.vault \
-DarchetypeArtifactId = {id_of_archetype} -DarchetypeVersion = 1.0.2 \
-DarchetypeRepository = Adobe-Public-Releases
  

Плагин архетипа Maven использует интерактивный режим в оболочке или командной строке для сбора информации о вашем проекте.Предоставленная вами информация используется для настройки различных свойств проекта, таких как имена папок и идентификаторы артефактов.

POM файлы

Сгенерированные файлы POM включают команды для компиляции кода, создания пакетов и их развертывания в AEM в пакетах. groupID , artifactId , версия и name Свойства проекта Maven автоматически заполняются с использованием значений, которые вы предоставляете архетипу Maven : генерировать интерактивную подсказку .

Вы можете изменить следующие значения по умолчанию в сгенерированном файле pom.xml:

  • Имя или IP-адрес сервера CQ: значение по умолчанию - localhost . Это значение содержится в элементе crx.host ниже project / properties .

  • Номер порта для сервера CQ: значение по умолчанию - 4502 . Это значение содержится в элементе crx.port ниже project / properties .

  • Версия подключаемого модуля Content Package Maven: используйте последнюю версию в качестве содержимого элемента version для подключаемого модуля с artifactId из content-package-maven-plugin . Значение по умолчанию - 0,0.24 .

Использование архетипов

  1. В окне оболочки или командной строке введите архетип Maven : создать команду . При появлении запроса укажите значения для остальных параметров.

    Для получения информации о каждом параметре обратитесь к разделу для архетипа, который вы используете.

  2. Используйте текстовый редактор, чтобы открыть файл pom.xml и отредактировать значения по умолчанию в соответствии с вашими требованиями.

  3. Заполните созданные папки ресурсами.

  4. Введите команду mvn clean install .

архетип простого-содержимого-пакета

Создает проект maven, подходящий для установки ресурсов для простого приложения AEM.Структура папок - это та, которая используется под папкой / apps в репозитории AEM. POM определяет команды для упаковки ресурсов, которые вы помещаете в папки, и установки пакетов в экземпляре AEM.

Свойства артефакта архетипа:

  • ID группы: com.day.jcr.vault
  • ID артефакта: архетип простого-содержимого-пакета
  • Версия: 1.0.2
  • Репозиторий: Adobe-Public-Release

Команда Maven:

  mvn архетип: сгенерировать -DarchetypeGroupId = com.day.jcr.vault \
-DarchetypeArtifactId = простой-контент-пакет-архетип \
-DarchetypeVersion = 1.0.2 \
-DarchetypeRepository = Adobe-Public-Releases
  

Параметры архетипа:

  • groupId: идентификатор группы пакета содержимого, создаваемого Maven. Значение автоматически используется в файле POM.
  • artifactId: имя пакета содержимого. Это значение также используется как имя папки проекта.
  • Версия

  • : версия пакета содержимого.
  • package: это значение не используется для архетипа простого-содержимого-пакета.
  • appsFolderName: имя папки ниже / apps.
  • artifactName: Описание пакета содержимого.
  • packageGroup: имя группы пакетов содержимого. Это значение настраивает параметр группы для цели пакета для подключаемого модуля Content Package Maven.

Структура папки:

  $ {artifactId}
   | - pom.xml
   | - ПРОЧИТАЙТЕ.текст
   | - src
      | - главная
         | - содержание
             | - jcr_root
                 | - приложения
                     | - $ {appsFolderName}
                            | - компоненты
                               | - .content.xml
                            | - конфигурация
                            | - установить
             | - МЕТА-ИНФ
                 | - хранилище
                     | - config.xml
                     | - filter.xml
                     | - nodetypes.cnd
                     | - свойства.xml
                     | - определение
                        | - .content.xml
  

простой-контент-пакет со встроенным архетипом

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

Свойства набора архетипов:

  • ID группы: com.day.jcr.vault
  • ID артефакта: простой-контент-пакет со встроенным архетипом
  • Версия: 1.0,2
  • Репозиторий: Adobe-Public-Release

Команда Maven:

  mvn архетип: сгенерировать -DarchetypeGroupId = com.day.jcr.vault \
-DarchetypeArtifactId = простой-контент-пакет-со-встроенным-архетипом \
-DarchetypeVersion = 1.0.2 \
-DarchetypeRepository = Adobe-Public-Releases
  

Параметры архетипа:

  • groupId: идентификатор группы пакета содержимого, создаваемого Maven. Значение автоматически используется в файле POM.
  • artifactId: имя пакета содержимого. Это значение также используется как имя папки проекта.
  • Версия

  • : версия пакета содержимого.
  • Пакет

  • : этот параметр не используется.
  • appsFolderName: имя папки ниже / apps.
  • artifactName: Описание пакета содержимого.
  • embeddedArtifactId: идентификатор артефакта, который нужно встроить в пакет содержимого.
  • embeddedGroupId: идентификатор группы внедряемого артефакта.
  • embeddedVersion: версия встроенного артефакта.
  • packageGroup: имя группы пакетов содержимого. Это значение настраивает параметр группы для цели пакета для подключаемого модуля Content Package Maven.

Структура папки:

  $ {artifactId}
   | - pom.xml
   | - README.txt
   | - src
      | - главная
         | - содержание
             | - jcr_root
                 | - приложения
                     | - $ {appsFolderName}
                            | - компоненты
                            | - конфигурация
                            | - установить
             | - МЕТА-ИНФ
                 | - хранилище
                     | - конфиг.xml
                     | - filter.xml
                     | - nodetypes.cnd
                     | - properties.xml
                     | - определение
  

многомодульный-контент-пакет-архетип

Создает проект maven, который включает структуру папок для разработки приложения AEM и установки ресурсов на сервер.

Папка bundle содержит структуру папок, в которой хранятся исходные файлы Java и JUnit, которые вы разрабатываете. Пом.xml в этой папке создает пакет OSGi. Следующие значения в POM идентифицируют артефакт и комплект:

  • artifactID: $ {artifactID} -bundle .
  • Bundle-SymbolicName: $ {groupId}. $ {ArtifactId} -bundle .

$ {artifactID} и $ {groupId} - это значения, которые вы указываете для этих параметров при выполнении архетипов.

Папка content содержит ресурсы, установленные в экземпляр AEM.Значение artifactID - $ {artifactID} multimodule-bundle .

Родительская папка содержит родительский POM, который управляет плагинами и зависимостями Maven.

Свойства набора архетипов:

  • ID группы: com.day.jcr.vault
  • ID артефакта: архетип многомодульного содержимого
  • Версия: 1.0.2
  • Репозиторий: Adobe-Public-Release

Команда Maven:

  mvn архетип: сгенерировать -DarchetypeGroupId = com.day.jcr.vault \
-DarchetypeArtifactId = многомодульный-контент-пакет-архетип \
-DarchetypeVersion = 1.0.2 \
-DarchetypeRepository = Adobe-Public-Releases
  

Параметры архетипа:

  • groupId: идентификатор группы пакета содержимого, создаваемого Maven. Значение автоматически используется в файле POM.
  • artifactId: имя пакета содержимого. Это значение также используется как имя папки проекта.
  • Версия

  • : версия пакета содержимого.
  • Пакет

  • : это значение не используется для архетипа многомодульного содержимого.
  • appsFolderName: имя папки ниже / apps.
  • artifactName: Описание пакета содержимого.
  • packageGroup: имя группы пакетов содержимого. Это значение настраивает параметр группы для цели пакета для подключаемого модуля Content Package Maven.

Структура папки:

  $ {artifactId}
   | - pom.xml
   | - связка
      | - пом.xml
      | - src
         | - главная
            | - java
               | - $ {groupId}
                  | - SimpleDSComponent.java
         | - тест
            | - java
               | - $ {groupId}
                  | - SimpleUnitTest.java
   | - содержание
      | - pom.xml
      | - src
         | - главная
            | - содержание
               | - jcr_root
                  | - приложения
                     | - $ {appsFolderName}
                            | - конфигурация
                            | - установить
                  | - МЕТА-ИНФ
                      | - хранилище
                         | - конфиг.xml
                         | - filter.xml
                         | - nodetypes.cnd
                         | - properties.xml
                         | - определение
                            | - .content.xml
  

репозиториев Maven

Исторически Nexus Repository Manager начинался как менеджер репозитория, поддерживающий формат репозитория Maven, и продолжает включать отличную поддержку для пользователей Apache Maven, Apache Ant / Ivy, Eclipse Aether, Gradle и других.

В этом разделе объясняется конфигурация по умолчанию, включенная в Nexus Repository Manager Pro и Nexus Repository Manager OSS, инструкции по созданию дополнительных репозиториев Maven, а также поиск и просмотр репозиториев. Конфигурация инструмента сборки для Apache Maven, Apache Ant, Gradle и других инструментов приводится ниже. В примерах конфигурации используется диспетчер репозиториев, объединяющий множество репозиториев и предоставляющий их через группу репозиториев.

Sonatype предлагает дополнительное образование по настройке репозитория Maven.Перейдите на страницу обучения, чтобы попробовать наш бесплатный курс для самостоятельного изучения.

Apache Maven создал наиболее широко используемый формат репозитория в экосистеме разработки Java с выпуском Apache Maven 2. Он используется всеми новыми версиями Apache Maven и многими другими инструментами, включая Apache Ivy, Gradle, sbt, Eclipse Aether и Leiningen . Дополнительную информацию о формате можно найти в разделе Пример - формат репозитория Maven.

Формат используется многими общедоступными репозиториями.Центральный репозиторий - это крупнейший репозиторий компонентов, предназначенных для разработки на основе Java / JVM и не только, он используется в формате репозитория Maven для выпуска компонентов многочисленных проектов с открытым исходным кодом. Он настроен как репозиторий прокси по умолчанию в Apache Maven и широко используется в других инструментах.

В дополнение к общим функциям управления репозиторием, задокументированным в Repository Management, особенности формата репозитория Maven могут быть настроены для каждого репозитория в разделе Maven 2 :

Политика версий

Release

A Maven репозиторий можно настроить так, чтобы он подходил для компонентов выпуска с политикой версии выпуска.Центральный репозиторий использует политику версии выпуска.

Снимок

Непрерывная разработка обычно выполняется с версиями снимков, поддерживаемыми политикой версий снимков. Эти значения версии должны заканчиваться на -SNAPSHOT в файле POM. Это позволяет повторять загрузку, когда фактическое используемое число состоит из отметки даты / времени и счетчика, а при извлечении по-прежнему может использоваться строка версии -SNAPSHOT . Менеджер репозитория и клиентские инструменты управляют файлами метаданных, которые управляют переводом из версии моментального снимка в значение отметки времени.

Смешанный

Политика Смешанная версия позволяет поддерживать оба подхода в одном репозитории.

Политика макета

Формат репозитория Maven определяет структуру каталогов, а также соглашение об именах для файлов в структуре. Apache Maven следует этим соглашениям. Другие инструменты сборки, такие как sbt, и пользовательские инструменты исторически создавали способы использования, которые менее строго используют структуру каталогов, нарушая соглашения об именах файлов.Компоненты, основанные на различных соглашениях этих инструментов, были опубликованы в общедоступных репозиториях, таких как Центральный репозиторий. Эти инструменты полагаются на эти изменившиеся соглашения.

Разрешающий

Вы можете настроить политику макета Разрешающий , чтобы разрешить ресурсы в репозитории, которые нарушают формат по умолчанию.

Strict

Значение по умолчанию Strict требует, чтобы инструменты публикации и доступа соответствовали соглашениям Apache Maven.Это предпочтительный параметр, если вы используете Apache Maven, Eclipse Aether и другие строго совместимые инструменты.

Стандартная установка Nexus Repository Manager включает репозиторий прокси, настроенный для доступа к Центральному репозиторию через HTTPS с использованием URL-адреса https://repo1.maven.org/maven2/ . Чтобы уменьшить количество дублирующих загрузок и повысить скорость загрузки для ваших разработчиков и серверов CI, вам следует использовать прокси для всех других удаленных репозиториев, к которым вы получаете доступ, как прокси-репозитории.

Чтобы проксировать репозиторий Maven, вы просто создаете новый репозиторий, используя рецепт maven2 (прокси) , как описано в разделе «Управление репозиторием».

Минимальные шаги настройки:

  • Определить
  • Определить URL-адрес для Удаленное хранилище например https://repo1.maven.org/maven2/
  • Выберите хранилище больших двоичных объектов для хранилища

Это создает репозиторий с использованием политики версии выпуска и политики макета Strict .Оба могут быть настроены для удаленного репозитория.

Если удаленный репозиторий содержит как версию выпуска, так и версию моментального снимка, вы должны установить политику версии Смешанная .

Использование репозитория с инструментами сборки, такими как sbt, потенциально требует, чтобы для политики макета было установлено значение Permissive .

Проксирование репозитория Oracle Maven

Проксирование репозитория Oracle Maven требует специальных параметров HTTP для рецепта .Кроме того, вы должны зарегистрировать учетную запись для доступа к внешнему репозиторию. Настройте репозиторий прокси для доступа к репозиторию Oracle, выполнив следующие дополнительные действия:

  1. Добавьте в поле Удаленное хранилище .
  2. Проверьте Аутентификацию в разделе HTTP .
  3. Введите имя пользователя и пароль из своей учетной записи Oracle.
  4. Проверить Настройка HTTP-запроса с.
  5. Проверить Разрешить циклическую переадресацию .
  6. Проверить Включить куки .

После применения этих настроек к репозиторию запросы данных будут перенаправляться в очередь с разными URL-адресами, большинство из которых связано с аутентификацией. Включая эти параметры, вы позволяете менеджеру репозитория поддерживать состояние аутентификации в файле cookie, который будет отправляться с каждым запросом, устраняя необходимость в перенаправлениях, связанных с аутентификацией, и избегая тайм-аутов.

Размещенный репозиторий Maven можно использовать для развертывания как собственных, так и сторонних компонентов.Стандартная установка Nexus Repository Manager включает два размещенных репозитория Maven. Репозиторий maven-Release использует политику версии выпуска, а репозиторий maven-snapshots использует политику версии моментального снимка.

Чтобы создать еще один размещенный репозиторий Maven, добавьте новый репозиторий с рецептом maven2 (размещенный) , как описано в разделе Управление репозиториями.

Минимальные шаги настройки:

  • Определить Имя
  • Выбрать Хранилище BLOB-объектов для Хранилище

Группа репозиториев - это рекомендуемый способ предоставить пользователям доступ ко всем вашим репозиториям Maven из диспетчера репозиториев без требуется дополнительная настройка на стороне клиента.Группа репозиториев позволяет вам раскрывать агрегированный контент нескольких прокси-серверов и размещенных репозиториев, а также других групп репозиториев с помощью одного URL-адреса для настройки инструмента. Это возможно для репозиториев Maven, создав новый репозиторий с рецептом maven2 (группа) , как описано в разделе Управление репозиториями.

Минимальные шаги настройки:

  • Определить Имя
  • Выбрать Хранилище больших двоичных объектов для
  • Добавить репозитории Maven в список членов в желаемом порядке

Типичным полезным примером является maven -общедоступная группа , настроенная по умолчанию.Он объединяет maven-central прокси-репозиторий с maven-Release и maven-snapshots размещенных репозиториев. Использование URL-адреса группы репозиториев дает вам доступ к пакетам во всех трех репозиториях с одним URL-адресом. Любой новый добавленный компонент, а также любые новые репозитории, добавленные в группу, будут автоматически доступны.

Вы можете просматривать репозитории Maven в пользовательском интерфейсе, проверяя компоненты и активы и их детали, как описано в разделе «Просмотр репозиториев и групп репозиториев».

Компоненты можно искать в пользовательском интерфейсе, как описано в разделе «Поиск компонентов». Поиск находит все компоненты и активы, которые в настоящее время хранятся в диспетчере репозитория, либо потому, что они были развернуты в размещенном репозитории, либо потому, что они были проксированы из вышестоящего репозитория и кэшированы в диспетчере репозитория.

Вы можете изменить порядок столбцов по умолчанию в пользовательских интерфейсах поиска и обзора на знакомый порядок: Группа (groupId), Имя (artifactId) и Версия .Просто перетащите столбец Group от середины влево, используя заголовок. Этот параметр будет сохранен в качестве вашего предпочтения в вашем веб-браузере.

Чтобы использовать диспетчер репозитория с Apache Maven, настройте Maven для проверки диспетчера репозитория вместо стандартного встроенного соединения с центральным репозиторием.

Для этого вы добавляете конфигурацию зеркала и переопределяете конфигурацию по умолчанию для центрального репозитория в вашем ~ / .m2 / settings.xml , как показано ниже:

 
  <зеркала>
    <зеркало>
      
       нексус 
       * 
       http: // localhost: 8081 / репозиторий / maven-public / 
    
  
  <профили>
    <профиль>
       нексус 
      
      
      <репозитории>
        <репозиторий>
           центральный 
           http: // центральный 
          true 
          true 
        
      
     
        
           центральный 
           http: // центральный 
          true 
          true 
        
      
    
  
  
    
     нексус 
  
 

В Настройка Maven для использования одной группы репозиториев определен единственный профиль с именем nexus .Он настраивает репозиторий и подключаемый модуль Repository с идентификатором , центральный , который переопределяет одни и те же репозитории в Super POM. Super POM является внутренним для каждой установки Apache Maven и устанавливает значения по умолчанию. Эти переопределения важны, поскольку они изменяют репозитории, разрешая моментальные снимки и заменяя URL-адрес поддельным URL-адресом. Этот URL-адрес переопределяется настройкой mirror в том же файле settings.xml , чтобы указывать на URL-адрес вашей отдельной группы репозитория.Таким образом, эта группа репозитория может содержать компоненты выпуска, а также компоненты моментальных снимков, и Maven их подберет.

Шаблон mirrorOf из * заставляет любой запрос репозитория перенаправляться на это зеркало и в вашу единую группу репозитория, которая в примере является общедоступной группой.

В поле mirrorOf можно использовать другие шаблоны. Возможная ценная настройка - использовать external: * . Это соответствует всем репозиториям, кроме тех, которые используют localhost или файловые репозитории.Это используется вместе с менеджером репозиториев, когда вы хотите исключить репозитории с перенаправлением, которые определены для интеграционного тестирования. Этот параметр требует выполнения интеграционного теста для самого Apache Maven.

Дополнительную документацию по настройкам зеркала можно найти в мини-руководстве на веб-сайте Maven.

В качестве последней конфигурации профиль nexus указан как активный профиль в элементе activeProfiles .

Развертывание в репозиторий настраивается в pom.xml для соответствующего проекта в разделе distributionManagement . Использование репозиториев по умолчанию менеджера репозиториев:

 <проект>
...

    <репозиторий>
       нексус 
       Выпуски 
       http: // localhost: 8081 / репозиторий / maven-Release 
    
    <репозиторий снимков>
       нексус 
       Снимок 
       http: // localhost: 8081 / repository / maven-snapshots 
    
  
... 

Учетные данные, используемые для развертывания server раздела вашего settings.xml . В приведенном ниже примере сервер содержит nexus как id , а также имя пользователя по умолчанию и пароль :

 <настройки>
....
  <серверы>
    <сервер>
       нексус 
       администратор 
       admin123 
    
   

Полные примеры проектов можно найти в папке maven примера проекта в nexus-3.х ветка. Полная сборка простого проекта , включая загрузку заявленных зависимостей и загрузку выходных данных сборки в диспетчер репозитория, может быть вызвана с помощью mvn clean deploy .

Apache Ivy - диспетчер зависимостей, часто используемый в сборках Apache Ant. Он поддерживает формат репозитория Maven и может быть настроен для загрузки зависимостей, которые могут быть объявлены в ivy.xml Эта конфигурация может содержаться в настройках ivysettings .xml . Ниже показан минимальный пример разрешения зависимостей от менеджера репозитория, работающего на localhost:

 
  
  
  <решатели>
      
    
 

Эти минимальные настройки позволяют задаче ivy: retrieve загружать объявленные зависимости.

Для развертывания выходных данных сборки в репозиторий с помощью задачи ivy: publish необходимо добавить учетные данные пользователя и URL-адрес целевого репозитория в файл ivysettings.xml и makepom , должны быть настроены задачи и публикации и вызван.

Полные примеры проектов можно найти в папке ant-ivy ветки nexus-3.x . Полную сборку простого проекта , включая загрузку заявленных зависимостей и загрузку выходных данных сборки в диспетчер репозитория, можно вызвать с помощью:

 cd ant-ivy / simple-project
ant deploy 

- это компонент управления зависимостями, используемый в Apache Maven 3+.Проект предоставляет задачи Ant, которые можно настроить для загрузки зависимостей, которые могут быть объявлены в файле pom.xml или непосредственно в файле сборки Ant.

Эта конфигурация может содержаться в файле Ant build.xml или в отдельном импортированном файле. Минимальный пример разрешения зависимостей от менеджера репозитория, работающего на localhost, показан ниже:

 
  
    <путь к классу>
      
    
  
  
...
 

Эти минимальные настройки позволяют задаче aether: resolve загрузить заявленные зависимости.

Для развертывания выходных данных сборки в репозиторий с помощью эфира : необходимо добавить задачу развертывания , аутентификацию пользователя и сведения о целевых репозиториях.

Полные примеры проектов можно найти в папке ant-aether в ветви nexus-3.x . Полную сборку простого проекта , включая загрузку заявленных зависимостей и загрузку выходных данных сборки в диспетчер репозитория, можно вызвать с помощью:

 cd ant-aether / simple-project
ant deploy 

Gradle имеет встроенный компонент управления зависимостями, который поддерживает формат репозитория Maven. Чтобы настроить проект Gradle для разрешения зависимостей, объявленных в сборке .gradle должен быть объявлен репозиторий Maven, как показано в Конфигурация репозиториев Gradle .

 репозиториев {
    maven {
        url "http: // localhost: 8081 / repository / maven-public /"
    }
} 

Эти минимальные настройки позволяют Gradle загружать заявленные зависимости.

Для развертывания выходных данных сборки в репозиторий с помощью задачи аутентификация пользователя может быть объявлена, например, в gradle.properties :

 nexusUrl = http: // localhost: 8081
nexusUsername = admin
nexusPassword = admin123 

в задаче uploadArchives с конфигурацией mavenDeployer из подключаемого модуля Maven:

 uploadArchives {
    репозитории {
        mavenDeployer {
            репозиторий (url: "$ {nexusUrl} / repository / maven-Release /") {
                аутентификация (userName: nexusUsername, пароль: nexusPassword)
            }
            snapshotRepository (url: "$ {nexusUrl} / repository / maven-snapshots") {
                аутентификация (userName: nexusUsername, пароль: nexusPassword)
            }
        }
    }
} 

Полные примеры проектов можно найти в папке gradle проекта в nexus-3.х ветка. Полную сборку простого проекта , включая загрузку заявленных зависимостей и загрузку выходных данных сборки в диспетчер репозитория, можно вызвать с помощью:

 cd gradle / simple-project
gradle upload 

sbt имеет встроенный компонент управления зависимостями и по умолчанию использует формат репозитория Maven. Чтобы настроить проект sbt для разрешения зависимостей, объявленных в файле build.sbt , необходимо объявить преобразователь, как показано в Конфигурация преобразователей SBT .

 resolvers + = "Nexus" в "http: // localhost: 8081 / repository / maven-public /" 

Эти минимальные настройки позволяют sbt загружать объявленные зависимости.

Для развертывания выходных данных сборки в репозиторий с помощью задачи публикации учетные данные пользователя могут быть объявлены в файле build.sbt :

 учетные данные + = Учетные данные («Sonatype Nexus»,
"nexus.scala-tools.org", "admin", "admin123") 

Конфигурация publishTo :

 publishTo << = версия {v: String =>
  val nexus = "http: // localhost: 8081 /"
  если (ст.trim.endsWith ("SNAPSHOT"))
    Некоторые («снимки» в nexus + «репозиторий / maven-снимки»)
  еще
    Некоторые ("релизы" в nexus + "repository / maven-Release") 

Дополнительную документацию можно найти в документации sbt по публикации.

Leiningen имеет встроенный компонент управления зависимостями и по умолчанию использует формат репозитория Maven. Как инструмент сборки он в основном используется для проектов, использующих язык Clojure. Многие библиотеки, полезные для этих проектов, опубликованы в репозитории Clojars.Если вы хотите их использовать, вам необходимо создать два репозитория прокси с удаленным URL-адресом http://clojars.org/repo/ .

Этот репозиторий является смешанным, поэтому вам необходимо создать репозиторий прокси выпуска и моментальных снимков, а затем добавить их в общую группу.

Чтобы сконфигурировать проект Leiningen для разрешения зависимостей, заявленных в файле project.clj , необходимо объявить зеркальный раздел , переопределяющий встроенные в центральные репозитории и clojars, как показано в Leiningen Configuration .

Конфигурация Leiningen

Эти минимальные настройки позволяют Leiningen загружать заявленные зависимости.

: зеркала {
    "central" {: name "Nexus"
                          : url "http: // localhost: 8081 / repository / maven-public /"
                          : repo-manager true}
  # "clojars" {: name "Nexus"
                          : url "" http: // localhost: 8081 / repository / maven-public / ""
                          : repo-manager true}
                        } 

Чтобы развернуть выходные данные сборки в репозитории с помощью команды deploy, целевые репозитории должны быть добавлены в проект .clj как деплои-репозитории . Это позволяет избежать проверки Leiningen зависимостей в этих репозиториях, что не является необходимым, поскольку они уже являются частью группы общедоступных репозиториев , используемой в зеркалах .

: репозитории развертывания [
    ["снимки" "http: // localhost: 8081 / repository / maven-snapshots"]
    ["релизы" "http: // localhost: 8081 / repository / maven-Release"]
  ] 

Учетные данные пользователя могут быть объявлены в ~ / .lein / credentials.clj.gpg или будет запрошено.

Дополнительную документацию можно найти на сайте Leiningen.

Плагин

Versions Maven - изменение версии проекта

Изменение версии проекта

Поставленная цель может быть использована для обновления версии текущего модуля. Он автоматически поднимется по локальным каталогам в поисках корня агрегации. Он автоматически обновит явно указанные зависимости. Вы указываете версию для обновления через свойство newVersion, например

 версий mvn: установить -DnewVersion = 1.0.3-SNAPSHOT 

Вот пример из жизни:

 svn co http://svn.apache.org/repos/asf/maven/enforcer/trunk/@778424 enforcer
Плагин enforcer / maven-enforcer
[...]
Enforcer / enforcer-rules / pom.xml
 U Enforcer
Выписал ревизию 778424.
Версии mvn: set -DnewVersion = 2.0.0-SNAPSHOT -f enforcer / pom.xml
[ИНФОРМАЦИЯ] Поиск проектов ...
[ИНФОРМАЦИЯ] Порядок сборки реактора:
[INFO] Enforcer
[INFO] Enforcer API
[INFO] Enforcer Rules
[ИНФОРМАЦИЯ] Подключаемый модуль Maven Enforcer
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[INFO] Building Enforcer
[ИНФОРМАЦИЯ] сегмент задачи: [орг.codehaus.mojo: версии-maven-plugin: 1.0-beta-1: set] (в стиле агрегатора)
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[ИНФОРМАЦИЯ] [версии: набор]
[ИНФОРМАЦИЯ] Поиск корня локального агрегатора ...
[ИНФОРМАЦИЯ] Корень локальной агрегации: ./enforcer
[ИНФОРМАЦИЯ] Обработка org.apache.maven.enforcer: enforcer
[INFO] Обновление проекта org.apache.maven.enforcer: enforcer
[INFO] с версии 1.0-beta-2-SNAPSHOT на 2.0.0-SNAPSHOT
[ИНФОРМАЦИЯ]
[ИНФОРМАЦИЯ] Обработка org.apache.maven.enforcer: enforcer-api
[ИНФОРМАЦИЯ] Обновление родительской организации.apache.maven.enforcer: enforcer
[INFO] с версии 1.0-beta-2-SNAPSHOT на 2.0.0-SNAPSHOT
[ИНФОРМАЦИЯ] Обновление проекта org.apache.maven.enforcer: enforcer-api
[INFO] с версии 1.0-beta-2-SNAPSHOT на 2.0.0-SNAPSHOT
[ИНФОРМАЦИЯ]
[ИНФОРМАЦИЯ] Обработка org.apache.maven.enforcer: enforcer-rules
[INFO] Обновление родительского org.apache.maven.enforcer: enforcer
[INFO] с версии 1.0-beta-2-SNAPSHOT на 2.0.0-SNAPSHOT
[INFO] Обновление проекта org.apache.maven.enforcer: enforcer-rules
[ИНФОРМАЦИЯ] из версии 1.0-beta-2-SNAPSHOT в 2.0.0-SNAPSHOT
[ИНФОРМАЦИЯ]
[ИНФОРМАЦИЯ] Обработка org.apache.maven.plugins: maven-enforcer-plugin
[INFO] Обновление родительского org.apache.maven.enforcer: enforcer
[INFO] с версии 1.0-beta-2-SNAPSHOT на 2.0.0-SNAPSHOT
[ИНФОРМАЦИЯ] Обновление проекта org.apache.maven.plugins: maven-enforcer-plugin
[INFO] с версии 1.0-beta-2-SNAPSHOT на 2.0.0-SNAPSHOT
[ИНФОРМАЦИЯ]
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[INFO] СТРОИТЬ УСПЕШНО
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[INFO] Общее время: 3 секунды
[ИНФОРМАЦИЯ] Окончание: пн, 25 мая, 15:30:00 IST 2009 г.
[ИНФОРМАЦИЯ] Конечная память: 22M / 355M
[ИНФОРМАЦИЯ] ----------------------------------------------- ------------------------- 

Чтобы проиллюстрировать, как работает реактор обновления версий зависимостей и определения корневого агрегатора, нам нужно отредактировать раздел dependencyManagement корневого файла pom.xml для явной ссылки на версию, а не через свойство.

Изменение:

 
    <зависимости>
      <зависимость>
         org.apache.maven.enforcer 
         enforcer-api 
         $ {project.version} 
      
      <зависимость>
         org.apache.maven.enforcer 
         enforcer-rules 
        <версия> $ {проект.версия} 
      
      <зависимость>
         org.apache.maven.enforcer 
         enforcer-rules 
         $ {project.version} 
         test-jar 
         тест 
       

С

по

 
    <зависимости>
      <зависимость>
         org.apache.maven.enforcer 
         enforcer-api 
         2.0.0-SNAPSHOT 
      
      <зависимость>
         org.apache.maven.enforcer 
         enforcer-rules 
         2.0.0-SNAPSHOT 
      
      <зависимость>
         org.apache.maven.enforcer 
         enforcer-rules 
        <версия> 2.0.0-SNAPSHOT 
         test-jar 
         тест 
       

Теперь, если мы запустим

 версий mvn: set -DnewVersion = 2.1.0-SNAPSHOT -f enforcer / enforcer-api / pom.xml
[ИНФОРМАЦИЯ] Поиск проектов ...
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[INFO] Построение Enforcer API
[INFO] task-segment: [org.codehaus.mojo: versions-maven-plugin: 1.0-beta-1: set] (в стиле агрегатора)
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[ИНФОРМАЦИЯ] [версии: набор]
[INFO] Поиск корня локального агрегатора...
[ИНФОРМАЦИЯ] Корень локального агрегирования: /home/connollys/src/enforcer/../enforcer
[ИНФОРМАЦИЯ] Обработка org.apache.maven.enforcer: enforcer-api
[ИНФОРМАЦИЯ] Обновление проекта org.apache.maven.enforcer: enforcer-api
[INFO] с версии 2.0.0-SNAPSHOT до 2.1.0-SNAPSHOT
[ИНФОРМАЦИЯ]
[ИНФОРМАЦИЯ] Обработка org.apache.maven.enforcer: enforcer
[ИНФОРМАЦИЯ] Обновление зависимости org.apache.maven.enforcer: enforcer-api
[INFO] с версии 2.0.0-SNAPSHOT на 2.1.0-SNAPSHOT
[ИНФОРМАЦИЯ]
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[INFO] СТРОИТЬ УСПЕШНО
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[INFO] Общее время: 3 секунды
[ИНФОРМАЦИЯ] Окончание: Пн, 25 мая, 15:41:54 IST 2009 г.
[ИНФОРМАЦИЯ] Конечная память: 22M / 350M
[ИНФОРМАЦИЯ] ----------------------------------------------- ------------------------- 

В этом случае он обновил версию enforcer-api, обнаружил, что enforcer-api является частью сборки агрегатора в локальной файловой системе, и обновил все ссылки на enforcer-api в сборке агрегатора для ссылки на новый версия.

Расширение масштабов изменения

Вы можете увеличить или изменить область изменения, указав groupId, artifactId или oldVersion непосредственно в командной строке. Они также могут поддерживать подстановочные знаки, чтобы помочь сопоставить несколько модулей, которые станут источником изменений.

Версии mvn

: set -DgroupId = org.apache.maven. * -DartifactId = * -DoldVersion = 2. * -DnewVersion = 2.1.0-SNAPSHOT 

Apache Maven 2 - Dzone Refcardz

Maven делит выполнение на четыре вложенных иерархии.От наиболее всеобъемлющих до наиболее конкретных - это жизненный цикл, этап, подключаемый модуль и цель.

Жизненные циклы, фазы, плагины и цели

Maven определяет концепцию не зависящих от языка потоков сборки проекта, которые моделируют шаги, которые проходит все программное обеспечение в процессе компиляции и развертывания.

Жизненные циклы представляют собой хорошо известную последовательность шагов (фаз), используемых при сборке программного обеспечения.

Каждый шаг в потоке жизненного цикла называется фазой. Ноль или более целей плагина привязаны к фазе.

Плагин - это логическая группировка и распределение (часто один JAR) связанных целей, таких как JARing.

Цель, наиболее детализированный шаг в Maven, - это отдельная исполняемая задача в подключаемом модуле. Например, дискретные цели в плагине jar включают в себя упаковку jar (jar: jar), подписание jar (jar: sign) и проверку подписи (jar: sign-verify).

Выполнение фазы или цели

В командной строке можно запросить цель фазы или подключаемого модуля. Можно указать несколько этапов или целей, разделенных пробелами.

 
Если вы попросите Maven запустить конкретную цель плагина, будет запущена только эта цель. В этом примере выполняются две цели плагина: компиляция
кода, затем JAR-файл результата, пропуская любые промежуточные шаги.
mvn compile: скомпилировать jar: jar
  

И наоборот, если вы попросите Maven выполнить фазу, все фазы и связанные цели подключаемого модуля до этого момента в жизненном цикле также будут выполнены. В этом примере запрашивается этап жизненного цикла развертывания, который также будет выполнять этапы проверки, компиляции, тестирования и упаковки.

 
mvn развертывание
  

Онлайн и офлайн

Во время сборки Maven пытается загрузить любые некэшированные артефакты, на которые есть ссылки, и продолжает кэшировать их в каталоге ~ / .m2 / repository в Unix или в каталоге% USERPROFILE% /. M2 / repository в системе. Windows.

Чтобы подготовиться к компиляции в автономном режиме, вы можете указать Maven загрузить все указанные артефакты из Интернета с помощью команды:

 
Зависимость mvn: перейти в автономный режим
  

Если все необходимые артефакты и плагины были кэшированы в вашем локальном репозитории, вы можете указать Maven работать в автономном режиме с помощью простого флага:

 
mvn <фаза или цель> -o
  

Встроенные жизненные циклы Maven

Корабли Maven имеют три жизненных цикла; чистый, по умолчанию и сайт.Многие из этапов этих трех жизненных циклов связаны с разумной целью плагина.

Официальный справочник по жизненному циклу, в котором подробно перечислены все привязки по умолчанию, можно найти по адресу http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Чистый жизненный цикл по своей природе упрощен. Он удаляет все сгенерированные и скомпилированные артефакты в выходном каталоге.

Жизненный цикл очистки
Фаза жизненного цикла Назначение
предварительная очистка
чистый Удалите все сгенерированные и скомпилированные артефакты при подготовке к новой сборке.
после очистки
Жизненный цикл по умолчанию
Фаза жизненного цикла Назначение
подтвердить Перекрестная проверка правильности и наличия всех элементов, необходимых для сборки.
инициализировать Настройте и запустите процесс сборки.
источники-генераторы Сгенерировать динамический исходный код
процессы-источники Фильтр, sed и копирование исходного кода
генерировать ресурсы Создание динамических ресурсов
процесс-ресурсы Фильтр, sed и копирование файлов ресурсов.
собрать Скомпилируйте исходные файлы на основном или смешанном языке.
классы процесса Дополнение скомпилированных классов, например, для инструментария покрытия кода.
генерировать тестовые источники Сгенерировать исходный код динамического модульного теста.
Источники-тест-процессы Фильтр, sed и копирование исходного кода модульного теста.
генерировать тестовые ресурсы Создать ресурсы динамического модульного тестирования.
ресурсы для тестирования процессов Фильтр, sed и копирование ресурсов модульного тестирования.
тестовая компиляция Скомпилировать исходные файлы модульного теста
тест Выполнить модульные тесты
подготовить пакет Управляйте сгенерированными артефактами непосредственно перед упаковкой. (Maven 2.1 и выше)
упаковка Объедините модуль или приложение в распространяемый пакет (обычно JAR, WAR или EAR).
предварительный интеграционный тест
тест интеграции Выполнять тесты, требующие подключения к внешним ресурсам или другим компонентам
тест после интеграции
проверить Осмотрите и перепроверьте дистрибутив (JAR, WAR, EAR) на правильность.
установить Поместите пакет в локальный репозиторий Maven пользователя.
развернуть Загрузить пакет в удаленный репозиторий Maven

Жизненный цикл сайта создает веб-сайт с информацией о проекте и может развертывать артефакты на указанном веб-сервере или локальном пути.

Жизненный цикл сайта
Фаза жизненного цикла Назначение
предварительная установка Перекрестная проверка правильности и наличия всех элементов, необходимых для сборки.
участок Создать веб-сайт в формате HTML, содержащий информацию о проекте и отчеты.
пост-сайт
развертывание на месте Загрузить созданный веб-сайт на веб-сервер

Цель по умолчанию

Цель по умолчанию кодифицирует предполагаемое использование автором сценария сборки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *