2014-12-03 16 views
6

tôi cần phải vượt qua một thư mục sử dụng các cửa sổ dạng như một tham số cho một exec trên maven, đây là một đoạn trích của pom.xml

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.2.1</version> 
     <executions> 
      <execution> 
      <id>export</id> 
      <phase>deploy</phase> 
      <goals> 
       <goal>exec</goal> 
      </goals> 
      <configuration> 
      <escape>true</escape>  
       <executable>${cmdl.exec}</executable> 

       <workingDirectory>${cmdl.location}</workingDirectory> 
       <arguments> 
       <argument>${project.basedir}\\target\\classes\\publishRoute</argument> 
       </arguments> 

      </configuration> 
      </execution> 
     </executions> 
    </plugin> 

vấn đề mà tôi đã gặp phải là $ {} project.basedir giải quyết để duy slash:

cmd /c script_cmdline.bat C:\Talend_CI\talend\release\Routes\SimpleRoute\\target\\classes\\publishRoute 

và tôi cần phải vượt qua nó với dấu chéo ngược đôi. Làm thế nào tôi có thể đạt được điều này bằng cách sử dụng $ {project.basedir}?

+0

Các dấu gạch chéo ngược đơn là chính xác trong cửa sổ. Chính xác thì vấn đề là gì? Furhtermore tôi khuyên bạn không nên sử dụng dấu gạch chéo ngược trong tệp pom. – khmarbaise

+0

Cảm ơn nhận xét. Ứng dụng dòng lệnh đang được thực thi bởi kịch bản lệnh mvn này, dự kiến ​​một đối số (thư mục) hoặc sử dụng dấu gạch chéo ngược kép hoặc dấu gạch chéo. Vì vậy, câu hỏi sẽ là làm thế nào tôi có thể làm cho project.basedir sử dụng định dạng dấu gạch chéo chuyển tiếp thay vào đó? – carlosgmercado

Trả lời

0

Vâng sau khi xem xét đến một số bài viết liên quan đến vấn đề này dường như là duy nhất và cách hiệu quả để khắc phục vấn đề này là sử dụng một danh sách các thuộc tính và sử dụng chúng phù hợp với việc thực hiện lược tả. Mặc dù không phải là một giải pháp thanh lịch cung cấp cho bạn tùy chọn tự động gán đường dẫn tệp bất kể hệ điều hành/nền tảng được sử dụng để chạy maven.

0

bạn có một cách để quá tải biến hoặc để khai báo một biến mới để có nghĩa là dự án basedir như thế này:

<basdir.home>C:/Talend_CI/talend/release/Routes/</basdir.home> 
+0

Vâng, đó là câu hỏi của tôi về nhận xét của khmarbaise. Làm sao? – carlosgmercado

+0

Cảm ơn nhưng nó cũng giống như chỉ thay thế đối số bằng nội dung tĩnh như sẽ đánh bại mục đích sử dụng ánh xạ động. Những gì tôi đang tìm kiếm là một cách để tự động thay đổi định dạng của những gì đã bao giờ $ {project.basedir} giải quyết. – carlosgmercado

+0

tôi nghĩ rằng nó không thể làm điều đó !!! đó là biến maven nếu bạn muốn thay đổi nó, bạn phải thay đổi nó trong lõi Maven – Inforedaster

Các vấn đề liên quan