簡體   English   中英

Maven-由於本地修改而無法發布

[英]Maven-cannot release due to local modicfications

我們一直在通過 Jenkins 管道發布我們的項目。 我們有一個共享管道,mvn release 命令使用選項“'-Dgoals=deploy -DpushChanges=false -DlocalCheckout=true -DpreparationGoals=initialize ' + '-Darguments="-Dmaven.javadoc.skip=true -Dskip.master 執行=true" -DtagNameFormat="@{project.version}" ' + '-Dresume=false'".

對於 maven 發布階段的最新項目之一,它無法說明“無法執行目標 org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare (default-cli) on project myProject: Cannot prepare the release because you有本地修改:14:00:25 [main] ERROR org.apache.maven.cli.MavenCli - [myProject/src/main/java/com/schema/avro/GlobalLinePlanStyle.java:modified]。

此文件是 avro 模式的自動生成文件,它是通過在 pom.xml 中添加以下插件生成的

<plugin>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro-maven-plugin</artifactId>
                <version>${avro.version}</version>
                <configuration>
                    <sourceDirectory>${project.basedir}/src/main/resources/</sourceDirectory>
                    <outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
                    <fieldVisibility>PRIVATE</fieldVisibility>
                    <includes>
                        <include>**/*.avsc</include>
                    </includes>
                    <testIncludes>
                        <testInclude>**/*.test</testInclude>
                    </testIncludes>
                </configuration>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>schema</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

我已經嘗試在 pom.xml 中添加明確的 maven 發布插件,如下所示,但這也沒有解決問題

<plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                        <version>2.5.3</version>
                        <configuration>
                            <checkModificationExcludes>
                                <checkModificationExclude>com/schema/avro/GlobalLinePlanStyle.java</checkModificationExclude>
                            </checkModificationExcludes>
                        </configuration>
                    </plugin>

由於release:prepare期望在checkModificationExcludes配置設置中找到“過濾器”:

檢查工作副本上的修改時將跳過的附加排除過濾器列表。 在設置 checkModificationExcludes 時被忽略。

您需要指定相對於項目根目錄的任一路徑,即:

<checkModificationExcludes>
    <checkModificationExclude>src/main/java/com/schema/avro/GlobalLinePlanStyle.java</checkModificationExclude>
</checkModificationExcludes>

或 ant 模式:

<checkModificationExcludes>
    <checkModificationExclude>**/com/schema/avro/GlobalLinePlanStyle.java</checkModificationExclude>
</checkModificationExcludes>

順便說一句,我不喜歡這樣的設置,因為在我看來生成的源文件根本不能駐留在項目結構中,但是其他開發人員報告說他們在正確設置avro-maven-plugin時遇到了其他困難。

暫無
暫無

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

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