2011-07-01 51 views
26

Tôi sử dụng plugin tomcat-maven để triển khai chiến tranh của tôi với máy chủ. Những gì tôi phải làm là cấu hình nó như thế này trong pom.xml của tôi:Maven - <server/> trong settings.xml

<configuration> 
... 
    <url>http://localhost/manager</url> 
    <username>admin</username> 
    <password>admin</password> 
... 
</configuration> 

Nhưng sau đó tôi rõ ràng muốn giữ lại các thiết lập này ở một nơi khác nhau kể từ khi tôi làm việc trên máy tính của tôi, nhưng sau đó có một dàn và một máy chủ trực tiếp, nơi cài đặt của máy chủ khác nhau.

Vì vậy, hãy sử dụng .m2/settings.xml:

<servers> 
    <server> 
     <id>local_tomcat</id> 
     <username>admin</username> 
     <password>admin</password> 
    </server> 
</servers> 

Bây giờ thay đổi pom.xml:

<configuration> 
    <server>local_tomcat</server> 
</configuration> 

Nhưng nơi để đặt URL của máy chủ? Không có vị trí nào trong tệp settings.xml trong thẻ máy chủ! Có lẽ như thế này?

<profiles> 
    <profile> 
    <id>tomcat-config</id> 
     <properties> 
    <tomcat.url>http://localhost/manager</tomcat.url> 
     </properties> 
    </profile> 
</profiles> 

<activeProfiles> 
    <activeProfile>tomcat-config</activeProfile> 
</activeProfiles> 

..và sử dụng thuộc tính $ {tomcat.url}.

Nhưng sau đó, câu hỏi đặt ra là tại sao lại sử dụng thẻ máy chủ trong tất cả settings.xml? Tại sao không sử dụng các thuộc tính cho tên người dùng và mật khẩu? Hoặc là có một nơi cho URL cũng trong URL cài đặt vì vậy tôi không phải sử dụng tài sản?

Trả lời

29

Trước hết hãy để tôi nói, profiles là một trong những tính năng mạnh mẽ nhất của Maven.

Đầu tiên tạo một hồ sơ trong pom.xml của bạn trông như thế này:

<profiles> 
    <profile> 
     <id>tomcat-localhost</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <tomcat-server>localhost</tomcat-server> 
      <tomcat-url>http://localhost:8080/manager</tomcat-url> 
     </properties> 
    </profile> 
</profiles> 

Sau đó, trong tập tin ~/.m2/settings.xml bạn thêm servers mục như thế này:

<servers> 
     <server> 
      <id>localhost</id> 
      <username>admin</username> 
      <password>password</password> 
     </server> 
    </servers> 

Các cấu hình Plugin build bạn như thế này :

<plugin> 
    <!-- enable deploying to tomcat --> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <version>1.1</version> 
    <configuration> 
     <server>${tomcat-server}</server> 
     <url>${tomcat-url}</url> 
    </configuration> 
</plugin> 

Điều này sẽ bật tiểu sử tomcat-localhost của bạn theo mặc định và cho phép bạn triển khai với cấu hình đơn giản mvn clean package tomcat:deploy.

Để triển khai cho các mục tiêu khác, hãy thiết lập mục nhập <server/> mới trong settings.xml bằng thông tin xác thực phù hợp. Thêm profile mới nhưng để lại đoạn mã <activation/> và định cấu hình để trỏ đến chi tiết thích hợp.

Sau đó, sử dụng số điện thoại mvn clean package tomcat:deploy -P [profile id] trong đó [profile id] là cấu hình mới.

Lý do thông tin xác thực được đặt trong settings.xml là do tên người dùng và mật khẩu của bạn phải được giữ bí mật trong hầu hết các trường hợp và không có lý do gì để đi chệch khỏi cách thiết lập thông tin đăng nhập máy chủ chuẩn mà mọi người sẽ phải thích ứng.

+0

ok, cảm ơn bạn đã thực hiện điều này rõ ràng hơn một chút :) –

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