簡體   English   中英

Maven 通過命令編譯插件

[英]Maven Compile Plugin By Command

我有一個 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正確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 -Dexecutions/execution1/id=compile1,encoding=Windows-1254,excludes=....

我無法將文件類型編碼更改為僅 UTF-8 或 Windows-1254 編碼。 我需要使用兩種編碼來編譯項目。

maven插件如何通過配置、編碼、執行等命令編譯?

我第二個khmarbaise。

一個項目中的所有源代碼文件需要具有相同的編碼。 選擇一個並轉換其他源代碼文件。

編輯:

您提到您無法轉換文件,但不幸的是,您沒有告訴我們原因。

無論什么阻礙你去做,你都需要解決這個問題。

因此,如果您的同事、經理或客戶告訴您不要更改編碼,那么您需要通過與這些人交談來解決這個問題,向他們解釋 Maven 項目需要有一個(並且只有一個)源代碼編碼並說服他們改變那個。

如果我誤解了你,請隨時評論我的回答。

不幸的是,Maven 的命令行並不像您希望實現的那樣靈活。 (關於您為什么要實現它,我有一個很大的問題,並且不能像您所演示的那樣僅在 POM 中指定該信息)。

如果您查看maven-compiler-plugin:compile目標文檔,您會看到某些選項(例如encoding )具有“用戶屬性”。 這以-D為前綴使其成為系統屬性,允許您從命令行配置它:

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

但是從命令行運行目標只會執行一次,而不是您想要的兩個。 所以你的選擇可能是:

  • 運行mvn命令兩次,每個命令都有不同的選項。 雖然很棘手,因為您無法指定包含/排除項。
  • 將項目拆分為多個項目,每個項目都有不同的編碼選項,然后從命令行運行這些選項。
  • 繞過首先給您帶來此問題的任何限制,並按照您定義的方式從 POM 運行,而不是在命令行上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM