Как исключить node_modules из сборки maven - PullRequest
0 голосов
/ 02 июля 2018

Я использую Gulp и по этой причине Node.js в моем проекте. У меня есть папка node_modules внутри src/main/resources, и каждый раз, когда я запускаю mvn install, она копирует 9000+ файлов в целевую папку.

Я не хочу этого! Как я могу исключить папку node_modules?

Я пробовал это:

<excludes>
    <exclude>**/src/main/resources/node_modules/*</exclude>
</excludes>

и это

<excludes>
    <exclude>node_modules/**</exclude>
</excludes>

внутри тега конфигурации плагина maven-compiler-plugin. Но это не работает.

У кого-нибудь есть решение?

А вот часть сборки моего помпона

<build>
    <plugins>
        <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-jira-plugin</artifactId>
            <version>${amps.version}</version>
            <extensions>true</extensions>
            <configuration>
                <productVersion>${jira.version}</productVersion>
                <productDataVersion>${jira.version}</productDataVersion>
                <applications>
                    <application>
                        <applicationKey>jira-software</applicationKey>
                        <version>${jira.software.application.version}</version>
                    </application>
                </applications>
                <!-- Uncomment to install TestKit backdoor in JIRA. -->
                <!--
                <pluginArtifacts>
                    <pluginArtifact>
                        <groupId>com.atlassian.jira.tests</groupId>
                        <artifactId>jira-testkit-plugin</artifactId>
                        <version>${testkit.version}</version>
                    </pluginArtifact>
                </pluginArtifacts>
                -->
                <pluginArtifacts>
                    <pluginArtifact>
                        <groupId>com.atlassian.labs.plugins</groupId>
                        <artifactId>quickreload</artifactId>
                        <version>1.30.5</version>
                    </pluginArtifact>
                </pluginArtifacts>
                <compressResources>false</compressResources>
                <enableQuickReload>true</enableQuickReload>
                <enableFastdev>false</enableFastdev>
                <allowGoogleTracking>false</allowGoogleTracking>
                <productDataPath>./generated-test-resources.zip
                </productDataPath>
                <!-- See here for an explanation of default instructions: -->
                <!-- https://developer.atlassian.com/docs/advanced-topics/configuration-of-instructions-in-atlassian-plugins -->
                <instructions>
                    <Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>

                    <!-- Add package to export here -->
                    <Export-Package>
                        de.cschulc.jira.plugin.api,
                    </Export-Package>

                    <!-- Add package import here -->
                    <Import-Package>
                        org.springframework.osgi.*;resolution:="optional",
                        org.eclipse.gemini.blueprint.*;resolution:="optional",
                        *;version="0";resolution:=optional,
                        *
                    </Import-Package>

                    <!-- Ensure plugin is spring powered -->
                    <Spring-Context>*</Spring-Context>
                </instructions>

            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>${maven.compiler.source}</source>
                <target>${maven.compiler.target}</target>
                <excludes>
                    <exclude>**/src/main/resources/node_modules/*</exclude>
                </excludes>
            </configuration>

        </plugin>

        <plugin>
            <groupId>com.atlassian.plugin</groupId>
            <artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
            <version>${atlassian.spring.scanner.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>atlassian-spring-scanner</goal>
                    </goals>
                    <phase>process-classes</phase>
                </execution>
            </executions>
            <configuration>
                <scannedDependencies>
                    <dependency>
                        <groupId>com.atlassian.plugin</groupId>
                        <artifactId>atlassian-spring-scanner-external-jar</artifactId>
                    </dependency>
                </scannedDependencies>
                <verbose>false</verbose>
            </configuration>
        </plugin>
    </plugins>
</build>

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Я предлагаю вам другой подход, который отлично работает для меня.

  1. переместить node_modules из myproject/src/main/resources в myproject: когда я хочу установить модули локально, для меня более естественно запускать npm из корневой папки проекта, потому что это мой рабочий каталог, см. global vs local
  2. используйте в своем модуле этот плагин: внешний интерфейс maven , он прекрасно работает с узлами и npm, что позволяет вам использовать многие инструменты автоматизации JavaScript. У него есть хорошая документация, чтобы он работал.
  3. используйте gulp или grunt для перемещения только тех ресурсов javascript, которые вам нужны в classpath, с myproject/node_modules на myproject/target/...
0 голосов
/ 19 июля 2019

У меня есть эта проблема, исправлена ​​

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
     <version>3.2.3</version>
     <configuration>
         <warSourceExcludes>node_modules/**,build/**,config/**,src/**</warSourceExcludes>
     </configuration>
</plugin>
0 голосов
/ 04 июля 2018

Вместо этого попробуйте:

<exclude>node_modules/**</exclude>

, затем попробуйте

 mvn clean process-resources -X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...