2012-09-07 15 views
19

Tôi muốn tìm các giá trị của tất cả Thuộc tính Maven khi chúng áp dụng cho một số dự án Maven.
mvn help:system liệt kê biến môi trường hệ điều hành và thuộc tính hệ thống JVM, nhưng không có thuộc tính Maven.
mvn help:evaluate chỉ hoạt động ở chế độ tương tác, điều đó có nghĩa là tôi phải nhập một thuộc tính Maven duy nhất, (ví dụ: ${project.build.outputDirectory}) để nhận giá trị của thuộc tính đó.Maven: Tổng quan về các giá trị của thuộc tính Maven

Tôi đang tìm cách nhận danh sách đầy đủ tất cả các thuộc tính Maven và giá trị của chúng.

+1

Có thể [câu hỏi này] (http://stackoverflow.com/q/4532687/367285) câu hỏi và câu trả lời có liên quan là hữu ích. – FrVaBe

Trả lời

30

Là một workaround, thêm video này vào phần <plugins> ... </plugins> bên trong của pom.xml dự án của bạn:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
    <execution> 
     <phase>validate</phase> 
     <goals> 
     <goal>run</goal> 
     </goals> 
     <configuration> 
     <tasks> 
      <echoproperties /> 
     </tasks> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

Bây giờ thực hiện mvn validate.
Trên bảng điều khiển, có tiền tố là [echoproperties], sẽ có danh sách đầy đủ các thuộc tính hệ thống, bao gồm các thuộc tính hệ thống được đặt bởi Maven như project.build.outputDirectory, basedirsettings.localRepository.

+3

Ý tưởng hay, nhưng nó không liệt kê tất cả các thuộc tính, ví dụ nó không liệt kê '$ {project.build.scriptSourceDirectory}' – Zarathustra

+0

Thử tốt, nhưng đây là một cái khác mà nó không nhận: 'session.executionRootDirectory'. – ingyhere

1

Tôi không biết cách làm cho chúng "chính thức", nhưng đây là giải pháp thay thế. Thêm maven-antrun-plugin vào dự án của bạn và chạy mvn test -X. Plugin sẽ hiển thị tất cả các thuộc tính được truyền cho nó từ Maven. Danh sách này trông hoàn chỉnh với tôi.

+0

Vì vậy, tôi đã làm theo đề xuất của bạn, nhưng nó không hoạt động; thêm maven-antrun-plugin vào tệp pom.xml như được chỉ ra trong [tài liệu của nó] (http://docs.codehaus.org/display/MAVENUSER/Antrun+Plugin), sau đó tôi đã thực thi 'mvn test -X'. Tôi không thể tìm thấy bất kỳ đặc tính Maven cụ thể nào. Yegor, danh sách của bạn có bao gồm thuộc tính Maven 'project.build.outputDirectory' không? – Abdull

0

Có cùng vấn đề. Thay đổi thời gian chờ và tối đa trong cấu hình tìm kiếm thông qua maven.

dưới đây cố định nó cho tôi:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>findbugs-maven-plugin</artifactId> 
      <version>3.0.2</version> 
      <configuration> 
       <maxHeap>2048</maxHeap> 
       <timeout>1800000</timeout> 
      </configuration> 
     </plugin> 
0

Trên thực tế project.build.outputDirectory là có nhưng bạn cần phải thực hiện trong 'biên dịch' giai đoạn, và KHÔNG trong 'Validate'. Tôi đoán những thuộc tính có sẵn cũng phụ thuộc vào giai đoạn hiện tại cho mục tiêu thực thi của một trình cắm thêm cụ thể, trong trường hợp này là 'maven-antrun-plugin'.

  <!-- Ant Run Plugin for debugging pom.xml and calling ant tasks --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>${ant.plugin.version}</version> 
      <executions> 
       <execution> 
        <phase>compile</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <echoproperties/> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin>