2013-09-21 29 views
0

我有一個java文件,其中一個變量在運行時取值。我使用web服務發現搜索服務並將其url保存在一個變量中。 現在我需要將此值傳遞給pom.xml。如何在java文件的朗姆酒時間將值傳遞給maven pom.xml?

abc.java具有

String url= http://xx.xx.xx.xx:55939/ABCDevice?wsdl 

pom.xml的代碼是:

<wsdlOptions> 
      <wsdlOption> 
      <wsdl>url</wsdl> <!-- get urlvalue from java file --> 
      <wsdlLocation>classpath:com/admin/discovery/ABCService.wsdl 
       </wsdlLocation> 
      </wsdlOption> 
      </wsdlOptions> 

在WSDL中我想通過其僅後運行時確定字符串值 「http://xx.xx.xx.xx:55939/ABCDevice?wsdl」。

我該怎麼做?

回答

0

我不認爲這是一個Apache Maven特定問題,而是一個普通的Java問題(Maven可能讓你意識到它)。 在構建期間,您不知道網址應該是什麼。根據應用的類型,你有幾種選擇:

  • JNDI(在Web容器的情況下)
  • 一個屬性上的預定位置文件中的可執行文件的情況下
  • 系統性能
  • 作爲參數( JAR)
  • 調整的web.xml部署之前(有些webcontainers可以幫助您與此)
  • ...

在你使用像Spring這樣的框架的時候,有一些簡單的方法可以注入上面的選項。

+0

感謝羅伯特,但這些選項會幫助我的abc.java之前調用pom.xml。由於我的maven命令mvn exec:java -Dexec.mainClass =「com.admin.discovery.WSClient」將首先調用pom.xml,我們可以創建一些依賴關係,這個pom.xml在執行一些操作後調用(java類執行? )謝謝 – user1726783

+0

除非我錯了,否則我不會使用'exec:java'來運行這個類。相反,我會生成一個可執行的jar文件,可能是http://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html如果你仍然想使用exec-maven-plugin,添加' -Dexec.arguments = http://xx.xx.xx.xx:55939/ABCDevice?wsdl'並將其值傳遞給正確的類。 –

+0

我必須使用maven,因爲它是我項目中的授權。如何添加這個參數幫助我傳遞wsdl url?由於此方法將在方法getwebservice()中執行的一組步驟後在java類中形成。我不知道這個網址是什麼,直到我去了abc.java() – user1726783