Исключая файл с профилями в Eclipse - Maven - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь исключить некоторые файлы из сборки Maven war, используя профили, и просто не могу понять, как это сделать.

Я создал два профиля в pom.xml, создал конфигурацию запуска eclipseдля каждого, и может вызывать их отдельно.Но обе сборки имеют все файлы в проекте eclipse, независимо от того, что я пытаюсь сделать.

Я упростил его до A и B, профиль A является профилем «по умолчанию».

    <profile>
        <id>profile-a</id>
        <build>
            <finalName>builda</finalName>
            <plugins>
                <plugin>
                    <artifactId>cloud</artifactId>
                    <version>11.0.3</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                        <classifier>profile-a</classifier>
                        <includes>
                            <include>**/*</include>
                        </includes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

А в профиле B я хочу удалить некоторые файлы и попробовалвсе виды способов, и сократили его до отсутствия чего-либо, также показаны все возможные методы исключения.

    <profile>
        <id>profile-B</id>
        <build>
            <finalName>buildb</finalName>
            <plugins>
                <plugin>
                    <artifactId>cloud</artifactId>
                    <version>11.0.3</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                        <classifier>cloud-service</classifier>
                        <excludes>
                            <exclude>**/*.txt</exclude>
                        </excludes>
                        <packagingExcludes>**/*.txt</packagingExcludes>                     
                        <warSourceExcludes>**/*.txt</warSourceExcludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

Но и builda.war, и buildb.war идентичны - я сравнил файлы warс Beyond Compare, и единственная разница - это временная метка в манифесте.Я также попытался удалить файл .jar, чтобы посмотреть, было ли это что-то с файлами .txt, но без разницы.

Так что я думаю, что информация о сборке поступает из моего проекта eclipse, а не из pom.xml.Или я что-то упустил - я все еще новичок в Maven, так что это вполне возможно.

Но как это сделать?

1 Ответ

0 голосов
/ 24 сентября 2018

Прежде всего, я чувствую, что должен отметить, что, похоже, есть много проблем с предоставленным вами POM.Я думаю, что вам нужно некоторое время, чтобы прочитать Maven POM Reference , Maven Build Lifecycle и соответствующую документацию.

Исходя из того, что вы предоставили, я думаю, что вы 'мы пытаемся добавить классификатор к вашему артефакту на основе профиля, который был активен во время сборки.Я сохранил эту функциональность и исправил другие аспекты POM, как мог, но сделал несколько предположений.

Вот модифицированный POM:

<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>web.example</groupId>
    <artifactId>exampleWar</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>profile-a</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>3.2.2</version>
                        <configuration>
                          <classifier>profile-a</classifier>
                        </configuration>
                      </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>profile-b</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>3.2.2</version>
                        <configuration>
                          <classifier>profile-b</classifier>
                          <packagingExcludes>%regex[.*\.txt]</packagingExcludes>
                          <warSourceExcludes>%regex[.*\.txt]</warSourceExcludes>
                        </configuration>
                      </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...