Как использовать npm-пакет в качестве зависимости maven? - PullRequest
0 голосов
/ 11 июля 2019

Я хочу использовать пакет npm в проекте Java Maven.

Это всего лишь один файл, который используется в проекте Java.

У нас есть два проекта.

  1. реагирует на внешний интерфейс, где bundle.js - это артефакт, загруженный с помощью maven

  2. проект Java Maven, в котором мы используем bundle.js как зависимость Maven

Теперь мы хотим избавиться от мавенских вещей в реактивном проекте.

Итак, мы загрузим bundle.js в виде пакета npm в наш реестр npm.

Мы используем nexus3 для наших репозиториев npm и maven.

Я хочу не добавлять плагин maven в проект java для установки пакета npm с реальной установкой npm.

Может быть, в nxus3 есть возможность подключить прокси-сервер nven maven для прокси-сервера maven или прокси-сервер nven maven?

Спасибо!

1 Ответ

0 голосов
/ 15 июля 2019

Теперь мы решили эту проблему с помощью модифицированной версии следующего подключаемого модуля maven .

Это позволяет нам использовать наш личный реестр npm с базовой аутентификацией.

С помощьюПлагин, мы можем загрузить пакеты npm в проекте java в целевой каталог:

<plugin>
    <groupId>org.mule.tools.javascript</groupId>
    <artifactId>npm-maven-plugin</artifactId>
    <version>1.4</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>fetch-modules</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/npmpackages</outputDirectory>
                <npmRepositoryBase>${npm.repositoryUrl}</npmRepositoryBase>
                <username>${npm.username}</username>
                <password>${npm.password}</password>
                <packages>
                    <package>ourfont:1.0.1</package>
                </packages>
            </configuration>
        </execution>
    </executions>
</plugin>

Затем мы используем плагин maven-resources-plugin, чтобы скопировать файл в каталог src в той же фазе и перезаписатькаждый раз, чтобы убедиться, что это правильная версия:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <overwrite>true</overwrite>
                <outputDirectory>${basedir}/src/main/webapp/fonts</outputDirectory>
                <resources>
                    <resource>
                        <directory>${project.build.directory}/npmpackages/ourfont</directory>
                        <include>ourfont.ttf</include>
                        <include>ourfont.svg</include>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

Глобальная конфигурация для плагина выполняется в нашем файле maven-settings.xml, который доступен в любой среде:

<profil>
    ...
    <properties>
        <npm.repositoryUrl>https://nexus......com/repository/npm-group/</npm.repositoryUrl>
        <npm.username>service.account@......com</npm.username>
        <npm.password>......</npm.password>
    </properties>
</profil>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...