Теперь мы решили эту проблему с помощью модифицированной версии следующего подключаемого модуля 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>