任何人都可以告訴我如何使用Maven從SVN進行結帳和進一步更新嗎?我閱讀maven.apache.org上的文檔,但似乎我太傻了,因爲我無法理解如何使用scm:checkout和scm:update,而無需在命令行中傳遞參數。我的意思是,當我只需運行:Maven SVN結帳
mvn scm:checkout (or scm:update) clean install
行家檢出源/目標/結賬時,則刪除它,當然它沒有任何編譯因此它是空罐子。所以我得寫這樣的東西:
mvn scm:checkout -DconnectionUrl=scm:svn:http://svn.my.dev/scm/repo/trunk/myProject -DcheckoutDirectory=src clean install
但我不想!我如何在pom.xml中設置這些參數?我怎樣才能將當前目錄設置爲checkoutDirectory? (也許它不應該是,如果將其設置在pom.xml的,因爲我可以將其設置爲$ {} project.basedir一個問題,但誰知道) 我pom.xml中包括這些行:
...
<scm>
<connection>scm:svn:http://svn.my.dev/scm/repo/trunk/myProject</connection>
<developerConnection>scm:svn:http://svn.my.dev/scm/repo/trunk/myProject</developerConnection>
</scm>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.7</version>
<configuration>
<username>username</username>
<password>password</password>
</configuration>
</plugin>
...
順便說一句,連接和developerConnection有什麼區別。 Maven文檔只說明developerConnection是......「開發人員的SCM連接URL」。這對我來說非常令人驚訝,因爲我認爲這是松鼠的一些連接,或者可能是兔子。
是啊,謝謝,那工作。但我仍然無法設置當前目錄爲checkoutDirectory。如果我爲某種原因設置了 $ {project.basedir} checkoutDirectory>(和for workDirectory相同),maven只是清理整個目錄,包括pom.xml,並退出,說它不能刪除目錄本身。這當然不是什麼大問題,我可以使用提到的「src」子目錄作爲結帳和工作目錄,但對我來說,使用當前目錄更好。可能嗎? –
mykola
不,我認爲這是不可能的,因爲Maven在結賬前總是刪除結帳目錄。 我不知道你的編譯設置是如何工作的,但也許你可以將你的POM文件與你的src /目錄一起提交(正如大多數人所做的那樣)。如果在你的環境中這是可能的,你可以運行'mvn scm:checkout -DconnectionUrl = scm:svn:http:// my-svn-url -DcheckoutDirectory =「/ my/checkout/directory」。你也可以把所有的-D選項放在一個「bootstrap」POM中,然後運行'mvn scm:checkout'或'mvn scm:update' –
嗯,我創建了一個shell腳本,它檢出/更新項目,然後運行maven build。畢竟,Maven svn插件無論如何都需要安裝svn,並且svn shell命令非常簡單,所以我在使用maven svn插件時看不到多少意義。 – mykola