首先,我對maven很陌生,我也不太瞭解它的許多概念,所以我爲任何noob錯誤而致歉。結帳後的Maven構建項目
我正在從一個本地svn存儲庫檢出分支的項目,這個分支的項目都是maven項目。其中一個項目有一個pom.xml
文件,當我撥打mvn package
時,該文件將所有其他項目編譯爲project.ear
文件。
我需要做的是能夠創建一個外部pom.xml
文件來檢出分支,然後在最近獲得的一個項目中調用pom.xml
。像這樣的(僞代碼)的東西:
checkout branch_url checkoutDir=src
mvn src/project-with-pom/pom.xml package
我已經使用了SCM插件做結帳(scm:checkout
),但我似乎無法弄清楚如何調用內pom.xml
文件籤後。
我嘗試使用調用插件,但我不認爲這是它的目的,它總是給我下面的:被選定爲執行
沒有項目。
調用
<!-- scm:checkout plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<setupIncludes>
<setupInclude>${basedir}/src/project-with-pom/pom.xml</setupInclude>
</setupIncludes>
<pomIncludes>
<pomInclude>*/pom.xml</pomInclude>
</pomIncludes>
</configuration>
<executions>
<execution>
<id>create_ear_file</id>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>
我使用scm:bootstrap
結賬完成後正確的,但我總是得到下面的錯誤也嘗試:
該項目已從由於以前構建取締故障。
SCM:引導
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.5</version>
<configuration>
<username>user</username>
<password>pass</password>
<connectionType>connection</connectionType>
<scmVersion>branch_name</scmVersion>
<scmVersionType>branch</scmVersionType>
<checkoutDirectory>${basedir}/src</checkoutDirectory>
<workingDirectory>${basedir}</workingDirectory>
<pushChanges>false</pushChanges>
<goals>package</goals>
<goalsDirectory>/src/project-with-pom</goalsDirectory>
<includes>POM.xml</includes>
</configuration>
</plugin>
我一直在使用的模塊也試過,但由於模塊文件不存在,它總是給我一個錯誤。我試圖用配置文件做這件事,但沒有。
有沒有辦法做到這一點?
此外,在一個側面說明,有沒有什麼辦法可以避免使用純文本的密碼爲svn?
編輯
猜猜我不是那麼清楚。我會嘗試重述它。
我的最終目標是通過一個maven命令來獲取一組乾淨的項目。如果我要使用Subversive並檢出一個分支,我可以使用maven從所述分支編譯.EAR文件,而不會有任何問題。但是我想要做的是使用scm:checkout
而不是Subversive,然後在單個maven命令中構建項目。
的執行將是這樣的:
mvn scm:checkout -DcheckoutDirectory=src & mvn package -f src/project-with-pom/pom.xml
我採用了多模塊的方式嘗試,但它似乎是行家首先構建子模塊,然後父模塊,因此我得到的「子不存在「錯誤。我需要父模塊首先執行checkout命令,然後構建checkout目錄內的子模塊。
對不起,我沒有讓自己清楚。我需要做的是首先從本地存儲庫獲取文件,然後調用pom文件來構建項目的其餘部分。如果我嘗試使用它作爲多模塊,它會給我一個「子模塊...不存在」的錯誤。基本上使用單個mvn命令來獲取文件,然後調用另一個pom文件。 – jmhg92