2011-11-16 11 views
5

Có cách nào để xác định hồ sơ maven của tôi bên ngoài tệp POM nhưng không trong .m2/settings.xml?
Tôi muốn xác định chúng trong một xml riêng tập tin bên các ứng dụng (cách để làm việc hiệu quả với maven 2 và 3) bởi vì tôi đang sử dụng maven 2 và có ý định chuyển sang 3 sớm.Xác định cấu hình maven bên ngoài POM

Trả lời

1

Cho đến khi Maven 2.2.1 bạn có thể xác định hồ sơ của mình thành tệp profiles.xml dưới dạng tệp riêng biệt nhưng với Maven 3 cơ hội này đã bị xóa. Các câu hỏi ist tại sao bạn cần một tập tin riêng biệt cho các cấu hình?

+4

vì tôi có nhiều tiểu sử và mỗi tiểu sử chứa nhiều thuộc tính và tệp pom đang nhận được quá lớn. –

+0

Điều gì về việc sử dụng một siêu pom có ​​chứa hồ sơ, giả sử họ sẽ áp dụng trên các loại dự án khác nhau? Poms dự án của bạn sau đó có thể sử dụng mà cha mẹ pom mà không cần phải xác định lại tất cả các hành vi phổ biến này. – RonU

+0

url cho cách tiếp cận như vậy xin vui lòng trong một câu trả lời riêng biệt sẽ là thích hợp hơn? –

1

Bạn có thể muốn xem qua this maven documentation trên các cấu hình xây dựng, mô tả loại hồ sơ và cách sử dụng từng loại hồ sơ.

Như tôi thấy, không thể xác định hồ sơ bên ngoài pom.xml hoặc settings.xml, nếu bạn muốn sử dụng maven 3.

0

Gần đây tôi đã di chuyển một ứng dụng sang maven3 từ maven2. Với maven 3 không có khả năng để có hồ sơ bên ngoài. Nhưng những gì có thể được thực hiện là có các tệp thuộc tính bên ngoài. Điều này có thể đạt được bằng cách maven-tính-plugin

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>properties-maven-plugin</artifactId> 
<version>1.0-alpha-2</version> 
<executions> 
    <!-- Associate the read-project-properties goal with the initialize phase, 
    to read the properties file. --> 
    <execution> 
    <phase>initialize</phase> 
    <goals> 
    <goal>read-project-properties</goal> 
    </goals> 
    <configuration> 
    <files> 
    <file>../com.tak/build.properties</file> 
    </files> 
    </configuration> 
    </execution> 
</executions> 
</plugin> 

Vì vậy, ở đây tôi đã giải thích làm thế nào để làm điều đó http://programtalk.com/java/migrate-from-maven2x-to-maven3x/

0
<profiles> 
    <profile> 
     <id>dev</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <build.profile.id>dev</build.profile.id> 
     </properties> 
    </profile> 
    <profile> 
     <id>prod</id> 
     <properties> 
      <build.profile.id>prod</build.profile.id> 
     </properties> 
    </profile> 
    <profile> 
     <id>test</id> 
     <properties> 
      <build.profile.id>test</build.profile.id> 
     </properties> 
    </profile> 
</profiles> 

Và thêm một bộ lọc

<filters> 
    <filter>src/test/resources/${build.profile.id}/config.properties</filter> 
</filters> 

Và thêm bất kỳ thư mục (dev, prod, test)