Maven - Xây dựng hồ sơ
Xây dựng hồ sơ là gì?
Cấu hình bản dựng là một tập hợp các giá trị cấu hình, có thể được sử dụng để đặt hoặc ghi đè các giá trị mặc định của bản dựng Maven. Sử dụng hồ sơ bản dựng, bạn có thể tùy chỉnh bản dựng cho các môi trường khác nhau, chẳng hạn như môi trường Phát triển v / s Sản xuất.
Cấu hình được chỉ định trong tệp pom.xml bằng cách sử dụng các phần tử ActiveProfiles / cấu hình của nó và được kích hoạt theo nhiều cách khác nhau. Cấu hình sửa đổi POM tại thời điểm xây dựng và được sử dụng để cung cấp các tham số cho các môi trường mục tiêu khác nhau (ví dụ: đường dẫn của máy chủ cơ sở dữ liệu trong môi trường phát triển, thử nghiệm và sản xuất).
Các loại hồ sơ bản dựng
Cấu hình xây dựng chủ yếu có ba loại.
Kiểu | Nơi nó được xác định |
---|---|
Mỗi dự án | Được xác định trong tệp POM của dự án, pom.xml |
Mỗi người dùng | Được xác định trong tệp xml cài đặt Maven (% USER_HOME% /. M2 / settings.xml) |
Toàn cầu | Được xác định trong tệp xml cài đặt chung của Maven (% M2_HOME% / conf / settings.xml) |
Kích hoạt hồ sơ
Một Hồ sơ Xây dựng Maven có thể được kích hoạt theo nhiều cách khác nhau.
- Sử dụng đầu vào bảng điều khiển lệnh một cách rõ ràng.
- Thông qua cài đặt maven.
- Dựa trên các biến môi trường (biến Người dùng / Hệ thống).
- Cài đặt hệ điều hành (ví dụ: họ Windows).
- Trình bày / thiếu tệp.
Ví dụ về kích hoạt hồ sơ
Hãy để chúng tôi giả sử cấu trúc thư mục sau của dự án của bạn:
Bây giờ, dưới src/main/resources, có ba tệp môi trường cụ thể -
Sr.No. | Tên & Mô tả tệp |
---|---|
1 | env.properties cấu hình mặc định được sử dụng nếu không có cấu hình nào được đề cập. |
2 | env.test.properties cấu hình kiểm tra khi cấu hình kiểm tra được sử dụng. |
3 | env.prod.properties cấu hình sản xuất khi cấu hình sản phẩm được sử dụng. |
Kích hoạt hồ sơ rõ ràng
Trong ví dụ sau, chúng tôi sẽ đính kèm maven-antrun-plugin: chạy mục tiêu để kiểm tra giai đoạn. Điều này sẽ cho phép chúng tôi lặp lại tin nhắn văn bản cho các cấu hình khác nhau. Chúng tôi sẽ sử dụng pom.xml để xác định các cấu hình khác nhau và sẽ kích hoạt cấu hình tại bảng điều khiển lệnh bằng lệnh maven.
Giả sử, chúng tôi đã tạo pom.xml sau trong thư mục C: \ MVN \ project.
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<profiles>
<profile>
<id>test</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Using env.test.properties</echo>
<copy file="src/main/resources/env.test.properties"
tofile="${project.build.outputDirectory}
/env.properties"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Bây giờ mở bảng điều khiển lệnh, đi đến thư mục chứa pom.xml và thực hiện như sau mvnchỉ huy. Chuyển tên hồ sơ làm đối số bằng tùy chọn -P.
C:\MVN\project>mvn test -Ptest
Maven sẽ bắt đầu xử lý và hiển thị kết quả của hồ sơ xây dựng thử nghiệm.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO] task-segment: [test]
[INFO] ------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
i.e. build is platform dependent!
[INFO] Copying 3 resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\MVN\project\src\test\resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [surefire:test {execution: default-test}]
[INFO] Surefire report directory: C:\MVN\project\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
There are no tests to run.
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] [antrun:run {execution: default}]
[INFO] Executing tasks
[echo] Using env.test.properties
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Sun Jul 08 14:55:41 IST 2012
[INFO] Final Memory: 8M/64M
[INFO] ------------------------------------------------------------------
Bây giờ như một bài tập, bạn có thể thực hiện các bước sau:
Thêm một phần tử hồ sơ khác vào phần tử hồ sơ của pom.xml (sao chép phần tử hồ sơ hiện có và dán nó vào nơi các phần tử hồ sơ kết thúc).
Cập nhật id của phần tử hồ sơ này từ thử nghiệm thành bình thường.
Cập nhật phần tác vụ thành echo env.properties và sao chép env.properties vào thư mục đích.
Một lần nữa lặp lại ba bước trên, cập nhật id thành sản phẩm và phần nhiệm vụ cho env.prod.properties.
Đó là tất cả. Bây giờ bạn đã sẵn sàng ba cấu hình xây dựng (bình thường / thử nghiệm / sản phẩm).
Bây giờ mở bảng điều khiển lệnh, đi đến thư mục chứa pom.xml và thực hiện như sau mvncác lệnh. Chuyển tên hồ sơ làm đối số bằng tùy chọn -P.
C:\MVN\project>mvn test -Pnormal
C:\MVN\project>mvn test -Pprod
Kiểm tra đầu ra của bản dựng để xem sự khác biệt.
Kích hoạt hồ sơ qua Cài đặt Maven
Mở Maven settings.xml tệp có sẵn trong thư mục% USER_HOME% /. m2 nơi %USER_HOME%đại diện cho thư mục chính của người dùng. Nếu tệp settings.xml không có ở đó, hãy tạo một tệp mới.
Thêm hồ sơ thử nghiệm làm hồ sơ hoạt động bằng cách sử dụng nút Hồ sơ đang hoạt động như được minh họa bên dưới trong ví dụ.
<settings xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>maven.dev.snaponglobal.com</id>
<name>Internal Artifactory Maven repository</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<activeProfiles>
<activeProfile>test</activeProfile>
</activeProfiles>
</settings>
Bây giờ mở bảng điều khiển lệnh, đi đến thư mục chứa pom.xml và thực hiện như sau mvnchỉ huy. Không chuyển tên hồ sơ bằng tùy chọn -P. Maven sẽ hiển thị kết quả của hồ sơ thử nghiệm là một hồ sơ đang hoạt động.
C:\MVN\project>mvn test
Kích hoạt cấu hình thông qua các biến môi trường
Bây giờ, hãy xóa hồ sơ hoạt động khỏi maven settings.xml và cập nhật hồ sơ thử nghiệm được đề cập trong pom.xml. Thêm phần tử kích hoạt vào phần tử hồ sơ như hình dưới đây.
Hồ sơ kiểm tra sẽ kích hoạt khi thuộc tính hệ thống "env" được chỉ định với giá trị "kiểm tra". Tạo một biến môi trường "env" và đặt giá trị của nó là "test".
<profile>
<id>test</id>
<activation>
<property>
<name>env</name>
<value>test</value>
</property>
</activation>
</profile>
Hãy mở bảng điều khiển lệnh, đi đến thư mục chứa pom.xml và thực hiện như sau mvn chỉ huy.
C:\MVN\project>mvn test
Kích hoạt cấu hình thông qua hệ điều hành
Phần tử kích hoạt để bao gồm chi tiết hệ điều hành như hình dưới đây. Cấu hình kiểm tra này sẽ kích hoạt khi hệ thống là windows XP.
<profile>
<id>test</id>
<activation>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
</activation>
</profile>
Bây giờ mở bảng điều khiển lệnh, đi đến thư mục chứa pom.xml và thực hiện như sau mvncác lệnh. Không chuyển tên hồ sơ bằng tùy chọn -P. Maven sẽ hiển thị kết quả của hồ sơ thử nghiệm là một hồ sơ đang hoạt động.
C:\MVN\project>mvn test
Kích hoạt hồ sơ qua tệp hiện tại / bị thiếu
Bây giờ yếu tố kích hoạt để bao gồm các chi tiết hệ điều hành như hình dưới đây. Hồ sơ kiểm tra sẽ kích hoạt khitarget/generated-sources/axistools/wsdl2java/com/companyname/group bị mất tích.
<profile>
<id>test</id>
<activation>
<file>
<missing>target/generated-sources/axistools/wsdl2java/
com/companyname/group</missing>
</file>
</activation>
</profile>
Bây giờ mở bảng điều khiển lệnh, đi đến thư mục chứa pom.xml và thực hiện như sau mvncác lệnh. Không chuyển tên hồ sơ bằng tùy chọn -P. Maven sẽ hiển thị kết quả của hồ sơ thử nghiệm là một hồ sơ đang hoạt động.
C:\MVN\project>mvn test