2009-07-26 18 views
9

Tôi đang sử dụng lọc tài nguyên trên jps, dựa trên hồ sơ. Tôi cũng đang phát triển cục bộ bằng cách sử dụng mvn jetty:run, nhưng giai đoạn lọc không chạy.Chạy bộ lọc tài nguyên khi sử dụng cầu tàu: chạy

Tôi làm cách nào để thực hiện lọc bằng plugin trình cắm?


Cấu hình đoạn:

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-war-plugin</artifactId> 
<version>2.0.2</version> 
<configuration> 
    <webResources> 
     <resource> 
      <directory>src/main/webapp</directory> 
      <includes> 
       <include>error.jsp</include> 
      </includes> 
      <filtering>true</filtering> 
      <targetPath>/</targetPath> 
     </resource> 
    </webResources> 
</configuration> 
</plugin> 

<profile> 
    <id>jci</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
     <property> 
      <name>jci</name> 
     </property> 
    </activation> 
    <properties> 
     <error.title>Some value here</error.title> 
    </properties> 
</profile> 
+0

@Robert: Các bạn đã tìm thấy giải pháp nào cho vấn đề này trong thời gian trung bình? Tôi đã có xu hướng đăng một câu hỏi tương tự khi tôi gặp bạn ... – Tim

+0

Chạy 'jetty: deploy-war' khiến tôi có thêm phần nào đó, nhưng vẫn không có giải pháp làm việc thực sự. Bất cứ ai cũng có câu trả lời thực sự cho câu hỏi này? – Tim

Trả lời

6

Bạn có thể muốn sử dụng cầu cảng: chạy phát nổ mục tiêu hơn là cầu cảng: chạy. Từ the documentation:

Mục tiêu này trước tiên lắp ráp ứng dụng web của bạn vào tệp chiến tranh bùng nổ và sau đó triển khai nó vào Jetty.

Điều này có thể đảm bảo rằng các giai đoạn vòng đời chiến tranh thích hợp được thực thi trước khi máy chủ khởi động.

Bạn cũng có chắc chắn hồ sơ jci đang được kích hoạt không? nếu một cấu hình khác được chỉ định cho bản dựng, thuộc tính <activeByDefault> sẽ không kích hoạt cấu hình, xem this bug để biết chi tiết.

Từ phản ứng John Casey của:

Ví dụ trên đang làm việc như thiết kế. Thành phần hoạt động < activeByDefault/> có nghĩa là để xác định rằng cấu hình này sẽ được kích hoạt nếu không có cấu hình nào khác đang hoạt động trong bản dựng. Do đó, kích hoạt cụ thể của bất kỳ hồ sơ nào sẽ khiến cho hồ sơ này bị hủy kích hoạt.

+1

THanks cho câu trả lời. Tôi sẽ nhìn vào phát nổ. Và có, tôi chắc chắn rằng hồ sơ đang hoạt động, đó không phải là vấn đề. –

+1

'mvn jetty: run-exploded -Dmaven.test.skip = true' là người chiến thắng. Cảm ơn! –

+2

Xin lỗi, đã nói chuyện sớm.Không thay đổi jsp cũng như tải lại lớp javarebel dường như không có hiệu lực. –

1

Các tệp được lọc thường kết thúc trong thư mục đích xây dựng. Nếu bạn chạy 'mvn jetty: run', nó sử dụng theo mặc định thư mục src/main/webapp chưa được lọc của bạn. Tất cả những gì bạn cần làm là thêm mục tiêu xây dựng làm thư mục tài nguyên bổ sung. Xong rồi, cầu tàu sẽ tạo lớp phủ và cũng sẽ sử dụng các tệp đã lọc.

   <plugin> 
        <groupId>org.mortbay.jetty</groupId> 
        <artifactId>maven-jetty-plugin</artifactId> 
        <version>6.1.26</version> 
        <configuration> 
         <webAppConfig> 
          <contextPath>/${project.build.finalName}</contextPath> 
          <baseResource implementation="org.mortbay.resource.ResourceCollection"> 
           <resourcesAsCSV>src/main/webapp,${project.build.directory}/${project.build.finalName}</resourcesAsCSV> 
          </baseResource> 
         </webAppConfig> 
         <scanIntervalSeconds>2</scanIntervalSeconds> 
        </configuration> 
       </plugin> 
0

Nhờ @Randy, tôi cũng đã cố gắng làm việc này. Đây là một ví dụ cập nhật cho thấy cả lọc tài nguyên và baseResource rebetty bằng cách sử dụng org.eclipse.jetty chứ không phải là mortbay cũ hơn. Ở đây chúng tôi lọc hai trang jsp login.jsp và index.jsp và đặt biến "$ {login.resources}" trong jsp thành "login.res.jsp" theo phần thuộc tính bên dưới. Lưu ý rằng chúng tôi lọc và ghi chúng vào "jetty.docroot", sau đó chúng tôi phủ lớp jetty.docroot lên src/main/webapps để các jsps đã lọc của chúng tôi được sử dụng bởi cầu nối. Lớp phủ được cập nhật từ @Randy để sử dụng triển khai "org.eclipse.jetty.util.resource.ResourceCollection" mới hơn.

<profiles> 
<profile> 
    <id>jetty</id> 

    <properties> 
     <jetty.docroot>${project.build.directory}/jetty</jetty.docroot> 
     <login.resources>login.res.jsp</login.resources> 
    </properties> 

    <build> 

     <plugins> 

      <plugin> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>3.0.2</version> 
       <executions> 
        <execution> 
         <id>jetty-docroot</id> 
         <!-- test-compile precedes jetty:run --> 
         <phase>test-compile</phase> 

         <goals> 
          <goal>copy-resources</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${jetty.docroot}</outputDirectory> 
          <resources> 
           <resource> 
            <directory>${basedir}/src/main/webapp</directory> 
            <filtering>true</filtering> 
            <includes> 
             <include>**/login.jsp</include> 
             <include>**/index.jsp</include> 
            </includes> 
           </resource> 
          </resources> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

      <plugin> 

       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.4.0.v20161208</version> 
       <configuration> 

        <scanIntervalSeconds>2</scanIntervalSeconds> 

        <webApp> 
         <contextPath>/intamerge</contextPath> 
         <baseResource implementation="org.eclipse.jetty.util.resource.ResourceCollection"> 

          <resourcesAsCSV>${jetty.docroot},${basedir}/src/main/webapp</resourcesAsCSV> 
          </baseResource> 
         <baseAppFirst>false</baseAppFirst> 
        </webApp> 


       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

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