1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yangzjcn-IntelliJ-IDEA-Tutorial

Клонировать/Скачать
maven-skill-introduce.md 19 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 09.06.2025 10:56 bf6f59c

Некоторые хитрости использования IntelliJ IDEA с Maven

Окружение

  • IntelliJ IDEA 2017.1
  • Maven 3.3.9
  • Nexus 3.2.1

Предварительные условия

  • Знание базовых методов конфигурации Maven
  • Знание концепций приватных репозиториев, таких как Nexus
  • Рекомендуется иметь файл конфигурации Maven settings.xml, расположенный как в %USER_HOME%/.m2/settings.xml, так и в ${maven.home}/conf/settings.xml. Это поможет избежать использования терминала, который по умолчанию обращается к конфигурации в пользовательском каталоге.

Профили в Maven

  • В Maven существует концепция, называемая: профилем, которая была создана для решения проблем с различными переменными и конфигурациями для разных окружений.
  • С помощью профилей можно активировать различные конфигурации в зависимости от определенных условий.
  • Профили могут быть созданы в нескольких местах: settings.xml, pom.xml, profiles.xml (этот файл используется реже всего).
  • В settings.xml обычно используются для выбора репозиториев, как показано в следующем примере кода settings.xml:
<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <localRepository>D:\maven\my_local_repository</localRepository>

    <pluginGroups>
    </pluginGroups>
```    <proxies>
    </proxies>
```    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>nexus</id>
                    <url>http://192.168.1.73:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>nexus</id>
                    <url>http://192.168.1.73:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
        <profile>
            <id>aliyun</id>
            <repositories>
                <repository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>```markdown
В приведенном выше коде профили используются для настройки глобальных параметров, одним из которых является репозиторий Nexus, а другим — репозиторий Aliyun. По умолчанию активен репозиторий Nexus (activeProfiles).В файле pom.xml профили обычно используются для активации конфигураций окружения, как показано в следующем коде:```- В приведённом выше коде профиль `profile` выполняет одну задачу: при сборке по умолчанию используется режим `dev`, и собираются конфигурационные файлы из директории `src/main/env/dev`. Если выбран режим `product`, то собираются конфигурационные файлы из директории `src/main/env/product`.
```### Пример использования Maven Profile в IntelliJ IDEA

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

![Использование некоторых навыков Maven в IntelliJ IDEA](images/xxii-f-maven-skill-introduce.jpg)

- Использование только aliyun репозитория можно настроить следующим образом в файле settings.xml:

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

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <localRepository>D:\maven\my_local_repository</localRepository>

    <pluginGroups>
    </pluginGroups>

    <proxies>
    </proxies>

    <profiles>
        <profile>
            <id>aliyun</id>
            <repositories>
                <repository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>aliyun</activeProfile>
    </activeProfiles>

</settings>
```- Использование nexus + aliyun репозитория можно настроить следующим образом в файле settings.xml:

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

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</proxies>
    <локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

    <группыПлагинов>
    </группыПлагинов>

    <proxies>
    </proxies>
<локальныйРепозиторий>D:\maven\my_local_repository</локальныйРепозиторий>

<группыПлагинов>
</группыПлагинов>

<proxies>
</prox    <profiles>
     <profile>
         <id>nexus</id>
         <repositories>
             <repository>
                 <id>nexus</id>
                 <url>http://192.168.1.73:8081/repository/maven-public/</url>
                 <releases>
                     <enabled>true</enabled>
                 </releases>
                 <snapshots>
                     <enabled>true</enabled>
                 </snapshots>
             </repository>
         </repositories>
         <pluginRepositories>
             <pluginRepository>
                 <id>nexus</id>
                 <url>http://192.168.1.73:8081/repository/maven-public/</url>
                 <releases>
                     <enabled>true</enabled>
                 </releases>
                 <snapshots>
                     <enabled>true</enabled>
                 </snapshots>
             </pluginRepository>
         </pluginRepositories>
     </profile>
     <profile>
         <id>aliyun</id>
         <repositories>
             <repository>
                 <id>aliyun</id>
                 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                 <releases>
                     <enabled>true</enabled>
                 </releases>
                 <snapshots>
                     <enabled>true</enabled>
                 </snapshots>
             </repository>
         </repositories>
         <pluginRepositories>
             <pluginRepository>
                 <id>aliyun</id>
                 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                 <releases>
                     <enabled>true</enabled>
                 </releases>
                 <snapshots>
                     <enabled>true</enabled>
                 </snapshots>
             </pluginRepository>
         </pluginRepositories>
     </profile>
 </profiles>```markdown
            </репозиторий_плагинов>
         </репозитории_плагинов>
     </профиль>
 </profiles>
        <активный_профиль>нексус</активный_профиль>
    </активные_профили></settings>

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yangzjcn-IntelliJ-IDEA-Tutorial.git
git@api.gitlife.ru:oschina-mirror/yangzjcn-IntelliJ-IDEA-Tutorial.git
oschina-mirror
yangzjcn-IntelliJ-IDEA-Tutorial
yangzjcn-IntelliJ-IDEA-Tutorial
master