Maven java: как установить фреймворк и разобраться с плагинами

The detailed issue list

Sub-task

 - Convert Maven Settings Builder to JSR 330
 - Convert Maven Model Builder to JSR 330
 - Convert Maven Embedder to JSR 330

Bug

 - NullPointerException when pom.xml has incomplete XML tag
 - NullPointerException in DefaultExceptionHandler
 - DefaultModelValidator.validateId is inefficient
 - ComparableVersion.parseVersion is inefficient
 - DefaultArtifactVersion.parseVersion is inefficient
 - ArtifactHandlerManager.getArtifactHandler is inefficient
 - ExcludesArtifactFilter is a memory hog
 - NPE on reporting convertion (DefaultReportingConverter) when inheritance of with no reports
 - Child inherit.append.path attributes not defined in Maven POM XSD
 - Tycho-based modules do not build with 3.6.1 (works with 3.6.0)
 - Version comparison CLI does not work anymore
 - NPE in DefaultReportingConverter when reports has no InputLocation (using polyglot Maven)
 - NPE in DefaultReportingConverter (when reports injected by Repaint IO maven-tiles)
 - DefaultProjectBuildingRequest copy constructor does not copy all fields
 - Model location handling uses too much memory
 - Tycho cannot resolve project dependencies
 - Equal compile source roots are added multiple times
 - DefaultUrlNormalizer doesn't normalize all relative URIs
 - MavenRepositorySystemUtils.newSession() misses assignment
 - Maven XML parser does not accept '>' in XML processing instructions
 - Downgrade maven-resolver:1.4.0 to 1.3.3
 - Fix ExclusionArtifactFilter to respect wildcard
 - relative testSourceDirectory on macos throw duplicate class error
 - MultiThreadedBuilder: wait for parallel running projects when using --fail-fast
 - MavenProject.getParentFile() not set when using ProjectBuilder.build(List<File>, ...)

Improvement

 - Migrate to non deprecated parts of Commons CLI
 - Prevent reparsing POMs in MavenMetadataSource
 - Add support for "release" qualifier
 - toolchain.xml file should support environment variables
 - Hint at Maven upgrade requirement when trying to build a pom.xml with a newer modelVersion
 - Make Resolver debug log messages for projects and plugins consistent
 - Improve speed in collection merging
 - Speed improvements while parsing big reactor projects
 - Add a fast interpolator not using reflection
 - Lazily compute the ManagedVersionMap
 - Document maven.repo.local system property
 - Improve DefaultModelValidator performance
 - Speep up Artifact version check and Parent interpolation
 - Upgrade Plexus Utils to 3.2.1
 - StringSearchModelInterpolator introspects objects from Java API
 - Generalize 'resume from' message when build reactor fails

Test

 - Improve test coverage of org.apache.maven.model.path.DefaultUrlNormalizer

Task

 - improve documentation: dependency type = file classifier(optional)+extension + additional hints on dependency features

Dependency upgrade

 - Remove unused transitive dependencies of Guava
 - upgrade plexus-component-metadata to 2.0.0 to get reproducible META-INF/plexus/components.xml
 - Upgrade maven-assembly-plugin to 3.1.1
 - Upgrade Modello to 1.11
 - Upgrade Wagon to 3.3.3
 - Upgrade maven-resolver to 1.4.1

Reporters and Contributors of this release

We really value the contributions of these non committers, so this section is focused on those individuals. Descriptions of the issues fixed can be found at the .

Issue Reporters of this release: Benoit GUERIN, Christian Schulte, Elliotte Rusty Harold, Falko Modler, Francesco Chicchiriccò, Guillaume Nodet, guofei, Joseph Walton, Louis Mills, Mark Derricutt, Mark McKelvy, Mickael Istria, Nicolas Echegut, Nicolas Radde, Raphael Rösch, Ray Tsang, Robert Thornton, Rohan Padhye, Sergey Chernov, Stefan Oehme, Thibaud Lepretre, zhb.

Code Contributors of this release: Guillaume Nodet, Mickael Istria, Ray Tsang, Stefan Oehme, Joseph Walton, Bo Zhang, AElMehdi, Christian Schulte, Mao Shuai, MartinKanters, Sergey Chernov, Jesse Glick.

Many thanks to all reporters and contributors for their time and support.

List Of Last Plugins Versions Which Support Maven 2.x

This list contains the list of plugins with the last version that supports Maven 2.x, which means if you have to use Maven 2, this list is the reference to the last version of plugins you can use.

NOTE: If you find plugins which are not mentioned or issues please report on the users mailing list.

Plugin (current docs) Type* Version Release Date Description
Core plugins Plugins corresponding to default core phases (ie. clean, compile). They may have multiple goals as well
clean B 2.6.1 2014-10-26 Clean up after the build
compiler B 3.3 2015-03-26 Compiles Java sources
deploy B 2.8.2 2014-08-27 Deploy the built artifact to the remote repository
failsafe B 2.19.1 2016-01-03 Run the JUnit integration tests in an isolated classloader
install B 2.5.2 2014-08-27 Install the built artifact into the local repository
resources B 2.7 2014-09-29 Copy the resources to the output directory for including in the JAR
site B 2.4 2012-04-03 Generate a site for the current project
surefire B 2.19.1 2016-01-03 Run the JUnit unit tests in an isolated classloader
verifier B 1.1 2015-04-14 Useful for integration tests — verifies the existence of certain conditions
Packaging types/tools These plugins relate to packaging respective artifact types
ear B 2.10.1 2015-06-27 Generate an EAR from the current project
ejb B 2.5.1 2015-06-20 Build an EJB (and optional client) from the current project
jar B 2.6 2015-03-09 Build a JAR from the current project
rar B 2.4 2014-09-08 Build a RAR from the current project
war B 2.6 2015-01-08 Build a WAR from the current project
app-client/acr B 1.1 2014-09-02 Build a JavaEE application client from the current project
shade B 1.7.1 2012-06-27 Build an Uber-JAR from the current project, including dependencies
source B 2.4 2014-10-07 Build a source-JAR from the current project
Reporting plugins Plugins which generate reports, are configured as reports in the POM and run under the site generation lifecycle
changelog R 2.3 2014-06-24 Generate a list of recent changes from your SCM
changes B+R 2.11 2014-09-28 Generate a report from an issue tracker or a change document
checkstyle B+R 2.15 2015-03-20 Generate a Checkstyle report
doap B 1.2 2015-03-17 Generate a Description of a Project (DOAP) file from a POM
docck B 1.1 2015-04-03 Documentation checker plugin
javadoc B+R 2.10.3 2015-04-14 Generate Javadoc for the project
jxr R 2.5 2014-11-02 Generate a source cross reference
linkcheck R 1.2 2014-10-08 Generate a Linkcheck report of your project’s documentation
pmd B+R 3.4 2015-02-03 Generate a PMD report
project-info-reports R 2.8 2015-01-05 Generate standard project reports
surefire-report R 2.19.1 2016-01-03 Generate a report based on the results of unit tests
Tools These are miscellaneous tools available through Maven by default
ant B 2.4 2014-12-15 Generate an Ant build file for the project
antrun B 1.8 2014-12-26 Run a set of ant tasks from a phase of the build
archetype B 2.3 2015-03-05 Generate a skeleton project structure from an archetype
assembly B 2.5.4 2015-04-27 Build an assembly (distribution) of sources and/or binaries
dependency B+R 2.10 2015-01-27 Dependency manipulation (copy, unpack) and analysis
enforcer B 1.4.1 2015-08-23 Environmental constraint checking (Maven Version, JDK etc), User Custom Rule Execution
gpg B 1.6 2015-01-19 Create signatures for the artifacts and poms
help B 2.2 2013-02-23 Get information about the working environment for the project
invoker B+R 1.10 2015-04-03 Run a set of Maven projects and verify the output
jarsigner B 1.4 2015-01-21 Signs or verifies project artifacts
patch B 1.2 2015-03-09 Use the gnu patch tool to apply patch files to source code
pdf B 1.3 2015-02-16 Generate a PDF version of your project’s documentation
plugin B+R 3.4 2015-01-04 Create a Maven plugin descriptor for any mojos found in the source tree, to include in the JAR
release B 2.5.2 2015-04-18 Release the current project — updating the POM and tagging in the SCM
remote-resources B 1.5 2013-08-14 Copy remote resources to the output directory for inclusion in the artifact
repository B 2.4 2015-02-22 Plugin to help with repository-based tasks
scm B 1.9.4 2015-04-01 Execute SCM commands for the current project
scm-publish B 1.0-beta-2 2012-11-01 Publish your Maven website to a scm location
stage B 1.0 2015-03-03 Assists with release staging and promotion
toolchains B 1.1 2014-11-11 Allows to share configuration across plugins
IDEs Plugins that simplify integration with integrated developer environments
eclipse B 2.10 2015-05-28 Generate an Eclipse project file for the current project

* Build or Reporting plugin

Как управлять зависимостями в Maven

Dependency manager в Maven обеспечивает проект необходимыми для работы библиотеками. Просто добавьте их в список зависимостей фреймворка.

Например:

Для простой и удобной работы с файлами добавим библиотеку Apache Commons IO. Для этого в pom.xml необходимо добавить несколько строк:

<dependency>

   <groupId>commons-io</groupId>

   <artifactId>commons-io</artifactId>

   <version>2.6</version>

</dependency>

После их добавления файл будет выглядеть так:

<?xml version="1.0" encoding="UTF-8"?>

<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>example.com</groupId>

   <artifactId>example</artifactId>

   <version>1.0-SNAPSHOT</version>


   <dependencies>

       <dependency>

           <groupId>commons-io</groupId>

           <artifactId>commons-io</artifactId>

           <version>2.6</version>

       </dependency>

   </dependencies>

</project>

Чтобы библиотека была готова к использованию, необходимо разрешить IntelliJ IDEA импортировать зависимость.

import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {

   public static void main(String[] args) {

       File tempDirectory = FileUtils.getTempDirectory();
   }
}

Все последующие зависимости также записываются в <dependencies/>. Их можно располагать в любой последовательности.

Пошаговая установка Maven

. Минимально необходимое свободное место на диске — 500 Мб.

2. Распакованный архив переместите в удобную для вас директорию. В Windows путь к Maven может выглядеть как C:\Program Files\maven\, в Linux — /opt/maven.

3. Введите mvn -version в командную строку, чтобы проверить корректность установки фреймворка.

4. Далее создайте новый проект в IntelliJIDEA.

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

5. Заполните поля в появившемся диалоговом окне.

Заполните поля в диалоговом окне

Проект также можно создать в удобном для вас месте. Его структура выглядит так:

  • pom.xml — файл, который полностью управляет фреймворком Maven;
  • src/main/java — папка, в которой находятся все Java-классы;
  • src/main/resources — папка, в которой находятся таблицы стилей, веб-страницы, изображения, используемые приложением.

Проект можно создать в удобном для вас месте

Плагины Maven

Плагины Maven используются для создания JAR-, WAR-файлов, юнит-тестов кода, создания документации и отчетов, компиляции файлов.

Плагины сборки конфигурируются в файле pom.xml внутри тегов <build></build>, а плагины отчетов — в <reporting></reporting>.

Самые распространенные и часто используемые плагины:

Jar. Формирует JAR-файл проекта.

Например:

<plugin>

  <groupId>org.apache.maven.plugins</groupId>

  <artifactId>maven-jar-plugin</artifactId>

  <version>2.3.2</version>

  <configuration>

    <finalName>myJar</finalName>                   

  </configuration>

</plugin>

Assembly. Сборка артефактов в пакеты.

Пример сборки JAR-пакета:

<plugin>

  <artifactId>maven-assembly-plugin</artifactId>

   <executions>

     <execution>

       <phase>package</phase>

       <goals>

         <goal>single</goal>

       </goals>

     </execution>

   </executions>

   <configuration>

     <descriptorRefs>

       <descriptorRef>jar-with-dependencies</descriptorRef>

     </descriptorRefs>

   </configuration>

</plugin>

Clean. Удаляет директорию target после сборки.

Пример с параметром filesets:

<plugin>

    <artifactId>maven-clean-plugin</artifactId>

    <version>3.0.0</version>

    <configuration>

        <filesets>

            <fileset>

                <directory>output-resources</directory>

            </fileset>

        </filesets>

    </configuration>

</plugin>

Surefire. Запуск тестов и отчетов.

Например:

<plugin>

  <groupId>org.apache.maven.plugins</groupId>

  <artifactId>maven-surefire-plugin</artifactId>

  <version>2.20</version>

  <configuration>

    <includes>

      <include>Sample.java</include>

    </includes>

    <excludes>

      <exclude>**/TestCircle.java</exclude>

      <exclude>**/TestSquare.java</exclude>

    </excludes>

  </configuration>

</plugin>

Javadoc. Генерация javadoc.

Например, для создания автономной документации для проекта плагин Javadoc необходимо добавить в раздел <build> файла pom.xml.

<build>

<plugin>

            <groupId>org.apache.maven.plugins</groupId>

            <artifactId>maven-javadoc-plugin</artifactId>

            <version>2.9.1</version>

            <executions>

                <execution>

                    <id>attach-javadocs</id>

                    <goals>

                        <goal>jar</goal>

                    </goals>

                </execution>

            </executions>

            <configuration>

                <docfilessubdirs>true</docfilessubdirs>

            </configuration>

</plugin>

</build>

Compiler. Компиляция исходных файлов.

Например:

<plugin>

  <groupId>org.apache.maven.plugins</groupId>

  <artifactId>maven-compiler-plugin</artifactId>

  <version>3.6.2</version>

  <configuration>

    <source>1.8</source>

    <target>1.8</target>

  </configuration>

</plugin>

Antrun. Запуск задач ant.

Например, у плагина Antrun должен быть <target>.

<plugins>

      <plugin>

        <artifactId>maven-antrun-plugin</artifactId>

        <version>3.0.0</version>

        <executions>

          <execution>

            <phase> <!-- a lifecycle phase --> </phase>

            <configuration>

              <target>

                <!--

                 Разместите здесь любую задачу Ant.

                -->

              </target>

            </configuration>

            <goals>

              <goal>run</goal>

            </goals>

          </execution>

        </executions>

      </plugin>

    </plugins>

Overview about the changes

  • There had been issues related to the project discoverytime which has been increased in previous version which influenced some of our users. This should have been fixed MNG-6311, MNG-6383 and MNG-6412.

  • The output in the reactor summary has been improved MNG-6391 cause it confused people. In Maven 3.6.0 the reactor summary now looks like the following:

 ------------------------------------------------------------------------
 Reactor Summary for parent 5.0.4-SNAPSHOT:

 parent ............................................. SUCCESS 
 domain ............................................. SUCCESS 
 service-client ..................................... SUCCESS 
 webgui ............................................. SUCCESS 
 service ............................................ SUCCESS 
 app ................................................ SUCCESS 
 appasm ............................................. SUCCESS 
 shade .............................................. SUCCESS 
 assembly ........................................... SUCCESS 
 ------------------------------------------------------------------------
 BUILD SUCCESS
 ------------------------------------------------------------------------
 Total time:  6.824 s
 Finished at: 2018-11-01T12:20:16+01:00
 ------------------------------------------------------------------------

The in the above output is the artifact name of the root module and the is the versions number for all modules in this reactor build.

If you have an aggregator pom which contains different modules with different versions each line will contain the appropriate versions which looks like this:

 ------------------------------------------------------------------------
 Reactor Summary:

 Apache Maven ACR Plugin 3.0.1-SNAPSHOT ............. SUCCESS 
 Apache Maven AntRun Plugin 3.0.0-SNAPSHOT .......... SUCCESS 
 Apache Maven Changelog Plugin 2.4-SNAPSHOT ......... SUCCESS 
 Apache Maven Changes Plugin 3.0.0-SNAPSHOT ......... SUCCESS 
 Apache Maven Clean Plugin 3.0.1-SNAPSHOT ........... SUCCESS 
 Apache Maven Compiler Plugin 3.7.1-SNAPSHOT ........ SUCCESS 
 Apache Maven Deploy Plugin 3.0.0-SNAPSHOT .......... SUCCESS 
 Apache Maven Documentation Checker Plugin 1.2-SNAPSHOT SUCCESS 
 Apache Maven EAR Plugin 3.0.0-SNAPSHOT ............. SUCCESS 
 Apache Maven EJB Plugin 3.0.1-SNAPSHOT ............. SUCCESS 
...

Dependencies

In a multi module build you have often the case that you define dependencies between module(s). The usual way of defining dependencies and their appropriate versions has been to use and this has not been changed.

So the correct way to do such things can be seen in the following example:

<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>18</version>
  </parent>
  <groupId>org.apache.maven.ci</groupId>
  <artifactId>ci-parent</artifactId>
  <name>First CI Friendly</name>
  <version>${revision}</version>
  ...
  <properties>
    <revision>1.0.0-SNAPSHOT</revision>
  </properties>
  <modules>
    <module>child1</module>
    ..
  </modules>
</project>

The child will look like this:

<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.maven.ci</groupId>
    <artifactId>ci-parent</artifactId>
    <version>${revision}</version>
  </parent>
  <groupId>org.apache.maven.ci</groupId>
  <artifactId>ci-child</artifactId>
   ...
  <dependencies>
    <dependency>
      <groupId>org.apache.maven.ci</groupId>
      <artifactId>child2</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>

Apache Maven Project Info Reports Plugin

The Maven Project Info Reports plugin is used to generate reports information about the project.

Goals Overview

The Project Info Reports Plugin has the following goals:

  • project-info-reports:ci-management is used to generate the Project Continuous Integration Management report.
  • project-info-reports:dependencies is used to generate the Project Dependencies report.
  • project-info-reports:dependency-convergence is used to generate the Project Dependency Convergence report for (reactor) builds.
  • project-info-reports:dependency-info is used to generate code snippets to be added to build tools.
  • project-info-reports:dependency-management is used to generate the Project Dependency Management report.
  • project-info-reports:distribution-management is used to generate the Project Distribution Management report.
  • project-info-reports:help is used to display help information on the Project Info Reports Plugin.
  • project-info-reports:index is used to generate the Project index page.
  • project-info-reports:issue-management is used to generate the Project Issue Management report.
  • project-info-reports:licenses is used to generate the Project Licenses report.
  • project-info-reports:mailing-lists is used to generate the Project Mailing Lists report.
  • project-info-reports:modules is used to generate the Project Modules report.
  • project-info-reports:plugin-management is used to generate the Project Plugin Management report.
  • project-info-reports:plugins is used to generate the Project Plugins report.
  • project-info-reports:team is used to generate the Project Team report.
  • project-info-reports:scm is used to generate the Project Source Code Management report.
  • project-info-reports:summary is used to generate the Project Summary report.

Incompatibility Notice

With the major version 3.0 several mojos and output filenames have been changed for alignment with their corresponding elements in the POM. In other words, mojos have the same names as their POM counterparts. To make you aware of that, see the following table for the upcoming changes:

Goal Name New Goal Name Output name New Output Name
cim ci-management integration.html ci-management.html
mailing-list mailing-lists mail-lists.html mailing-lists.html
project-team team team-list.html team.html
license licenses license.html licenses.html
issue-management issue-management issue-tracking.html issue-management.html
scm source-repository.html scm.html
summary project-summary.html summary.html

Details about this change can be found in MPIR-323.

Usage

General instructions on how to use the Project Info Reports Plugin can be found on the usage page. Some more specific use cases are described in the examples given below.

If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our issue tracker. When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Of course, patches are welcome, too. Contributors can check out the project from our source repository and will find supplementary information in the guide to helping with Maven.

Examples

To provide you with better understanding on some usages of the Maven Project Info Reports Plugin, you can take a look into the following examples:

  • Run Selective Reports
  • Run Individual Reports
  • Customize the SCM Report
  • Overview of the reports generated for this plugin

Какими бывают Maven-репозитории

Maven-репозиторий — это директория, в которой находятся плагины, библиотеки, JAR и другие артефакты, необходимые для работы Maven.

Виды репозиториев:

  • Централизованный. Вклад сообщества Maven. Здесь находятся все самые популярные и часто используемые библиотеки. Если Maven не находит нужную библиотеку в локальном репозитории, он обращается к центральному.
  • Локальный. Директория, которая находится на локальном компьютере пользователя и хранит зависимости проекта. Локальный репозиторий по умолчанию создается в %USER_HOME%.
  • Удаленный. Настраивается во избежание ошибок. Репозиторий необходим на случай, если Maven не нашел необходимые зависимости в централизованном репозитории. Для настройки удаленного репозитория нужно внести изменения в 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.companyname.projectgroup</groupId>

   <artifactId>Tutorials</artifactId>

   <version>1.0</version>

   <dependencies>

      <dependency>

         <groupId>net.proselyte.private-lib</groupId>

         <artifactId>private-lib</artifactId>

         <version>1.0.0</version>

      </dependency>

   <dependencies>

   <repositories>

      <repository>

         <id>proselyte.lib1</id>

         <url>http://download.proselyte.net/maven2/lib1</url>

      </repository>

      <repository>

         <id>proselyte.lib2</id>

         <url>http://download.proselyte.net/maven2/lib2</url>

      </repository>

   </repositories>

</project>

Apache Maven Install Plugin

The Install Plugin is used during the install phase to add artifact(s) to the local repository. The Install Plugin uses the information in the POM (groupId, artifactId, version) to determine the proper location for the artifact within the local repository.

The local repository is the local cache where all artifacts needed for the build are stored. By default, it is located within the user’s home directory (~/.m2/repository) but the location can be configured in ~/.m2/settings.xml using the <localRepository> element.

Goals Overview

The Install Plugin has 3 goals:

  • install:install is used to automatically install the project’s main artifact (the JAR, WAR or EAR), its POM and any attached artifacts (sources, javadoc, etc) produced by a particular project.
  • install:install-file is mostly used to install an externally created artifact into the local repository, along with its POM. In that case the project information can be taken from an optionally specified pomFile, but can also be given using command line parameters.
  • install:help displays help information on maven-install-plugin.

Important Note for Version 3.0.0+

The install:install goal does not support creating checksums anymore via -DcreateChecksum=true cause this option has been removed. Details can be found in MINSTALL-143.

Usage

General instructions on how to use the Install Plugin can be found on the usage page. Some more specific use cases are described in the examples given below.

If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our issue tracker. When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Of course, patches are welcome, too. Contributors can check out the project from our source repository and will find supplementary information in the guide to helping with Maven.

Examples

To provide you with better understanding on some usages of the Maven Install Plugin, you can take a look into the following examples:

  • Installing a Custom POM
  • Generating a Generic POM
  • Creating Checksums
  • Updating Release Info
  • Installing an Artifact to a Specific Local Repository Path
  • Installing Secondary Artifacts

User visible Changes

mvn --no-transfer-progress ....

or in short:

mvn -ntp ... ....

There had been an issues like MNG-6505 and MNG-6059 related to the construction of URL’s etc. within project, distributionManagement and scm part in the pom for multi module builds like this:

<project child.project.url.inherit.append.path="false">
  <url>...</url>

  <scm child.scm.connection.inherit.append.path="false"
       child.scm.developerConnection.inherit.append.path="false"
       child.scm.url.inherit.append.path="false">
    <connection>...</connection>
    <developerConnection>...</developerConnection>
    <url>...</url>
  </scm>

  <distributionManagement>
    <site child.site.url.inherit.append.path="false">
      <url>...</url>
    </site>
  </distributionManagement>
</project>
Добавить комментарий

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

Adblock
detector