Плагин компиляции Maven по команде - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть проект в кодировке Windows -1254, а некоторые файлы в кодировке UTF-8.

 <properties>
        <project.build.sourceEncoding>Windows-1254</project.build.sourceEncoding>
        <project.reporting.outputEncoding>Windows-1254</project.reporting.outputEncoding>
        <version.plugin.maven.resources>3.1.0</version.plugin.maven.resources>
        <functionAppName>az-app-core</functionAppName>
    </properties>

Я добавил плагин в pom и правильно скомпилировал с mvn compile.

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
                <executions>
                    <execution>
                        <id>compile1</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <excludes>
                            <exclude>**/StringUtil.java</exclude>
                            <exclude>**/TurkceInputTag_FaceLift.java</exclude>
                            <exclude>**/TurkceInputTag.java</exclude>
                            </excludes>
                            <encoding>Windows-1254</encoding>
                        </configuration>
                    </execution>
                    <execution>
                        <id>compile2</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <includes>
                             <include>**/StringUtil.java</include>
                            <include>**/TurkceInputTag_FaceLift.java</include>
                            <include>**/TurkceInputTag.java</include>
                            </includes>
                            <encoding>UTF-8</encoding>
                        </configuration>
                    </execution>
                </executions>

            </plugin>

Но мне нужно скомпилировать проект по команде не только clean compile, но и указать все конфигурации ( определенные выше: compile1, compile2 выполнения) в maven как

maven compile-plugin : compile -Dexecutions / execute1 / id = compile1, encoding = Windows -1254, исключает = ... .

Я не могу изменить кодировку типов файлов только на кодировку UTF-8 или Windows -1254. Мне нужно скомпилировать проект, используя обе кодировки.

Как плагин maven может компилироваться по команде с конфигурациями, кодировкой, выполнением и т. Д. c.?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

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

Если вы посмотрите в документации target для maven-compiler-plugin:compile вы увидите, что некоторые из опций, например encoding, имеют «свойство пользователя». Это, с префиксом -D, чтобы сделать его системным свойством, позволяет настроить его из командной строки:

mvn <goals/phases> -Dencoding=... -Dmaven.compiler.failOnError=...

Но выполнение цели из командной строки даст одно выполнение, а не набор из двух, что вы хотите. Таким образом, ваши параметры могут быть:

  • Запустите команду mvn дважды, с различными параметрами для каждого. Сложно, потому что вы не можете указать включения / исключения.
  • Разделите проект на более чем один, имея разные параметры кодирования в каждом, и запустите их из командной строки.
  • Обойдите Какое бы ограничение ни ставило вас в первую очередь, и оно запускается из POM, как вы определили, а не из командной строки.
0 голосов
/ 05 февраля 2020

I second khmarbaise.

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

РЕДАКТИРОВАТЬ:

Вы упомянули, что не можете конвертировать файлы, но, к сожалению, вы не сказали нам, почему.

Что бы вам ни мешало это сделать, вам нужно решить эту проблему.

Так что, если ваши коллеги, менеджеры или клиенты говорят вам не , чтобы изменить кодировку, тогда вам нужно чтобы решить эту проблему, поговорив с этими людьми, объяснив им, что в проекте Maven должен быть один (и только один) исходный код, и убедив их изменить это.

Не стесняйтесь комментировать мой ответ, если я вас неправильно понял.

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