Làm cách nào tôi có thể tải maven-release-plugin để bỏ qua các bài kiểm tra của mình?


177

Làm cách nào tôi có thể chạy maven-release-plugin để chạy mà không kích hoạt các bài kiểm tra?

Tôi đã thử

-Dmaven.test.skip=true 

-DskipTests 

-DpreparationGoals=clean

... nhưng không có việc gì.

Có, tôi biết tôi không nên phát hành nếu các bài kiểm tra không vượt qua, nhưng tôi không kiểm soát được việc khiến đồng nghiệp của mình viết bài kiểm tra đáng tin cậy.

Câu trả lời:


406

-Darguments="-DskipTests" là những gì bạn muốn, hoặc cấu hình rõ ràng các thực thi rẽ nhánh trong pom.


1
Nó hoạt động với tôi, cảm ơn và +1 nhưng ... Điều này có cần thiết không?
javamonkey79

5
CNTT là cần thiết bởi vì quy trình phát hành tạo ra một quy trình maven mới và tpical -DskipTests không được chuyển qua như các thuộc tính hệ thống.
Eddie

4
ước gì có thể bỏ phiếu bạn 2lên. Tôi đã dành hàng giờ cố gắng để có được điều này đúng ... nhưng 1. Tôi đã bỏ lỡ điều gì trong tài liệu hay tài liệu mvn thiếu thứ gì đó? 2. Tôi đã <skipTests>true</skipTests>cấu hình trong POM công ty của tôi. Vẫn không hoạt động. Những gì đã làm việc là giải pháp của bạn.
Pulak Agrawal

Bạn có cần một số cấu hình cụ thể trong pom để làm cho công việc này?
DenCowboy

42

-Darguments="..."chuyển các đối số cho quá trình maven rẽ nhánh, nhưng điều quan trọng là phải nhận ra rằng có hai công tắc khác nhau đang được sử dụng ở đây. Các -DskipTestslực lượng maven không chạy bất kỳ thử nghiệm nào, nhưng các thử nghiệm vẫn được biên dịch (điều này rất quan trọng nếu bạn có bất kỳ sự phụ thuộc nào vào loại thử nghiệm). Các -Dmaven.test.skip=truelực lượng maven thậm chí không biên dịch các bài kiểm tra, điều đó có nghĩa là bất kỳ bình kiểm tra nào sẽ không được tạo ra.

Vì vậy, bạn phải sử dụng -Darguments, nhưng để bỏ qua các thử nghiệm chỉ sử dụng skipTests, để ngăn chặn chúng biên dịch sử dụng maven.test.skip.


21

Nếu bạn chỉ muốn bỏ qua các bài kiểm tra tích hợp, điều này sẽ làm điều đó:

-Darguments="-DskipITs"

3

bạn có quá nhiều sự lựa chọn để tránh và bỏ qua các bài kiểm tra với plugin phát hành

  • Đầu tiên là chuyển đối số trên cli vào mục tiêu phát hành hoặc các giai đoạn bằng cách cung cấp một -Dargument:

mẫu mực: mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare

-Thứ hai là để thực hiện các đối số trên tệp pom.xml của bạn trong bản dựng như thế này:

<plugin>    
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.scm</groupId>
                        <artifactId>maven-scm-provider-gitexe</artifactId>
                        <version>1.9.4</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <skip>true</skip>
                    <skipTests>true</skipTests>
                    <preparationGoals>clean validate</preparationGoals>
                    <arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
                    <useReleaseProfile>false</useReleaseProfile>
                    <releaseProfiles>release-mode</releaseProfiles>
                    <tagNameFormat>TEST-@{project.version}</tagNameFormat>
                </configuration>
            </plugin>

Lưu ý rằng phương thức thứ hai ghi đè lên phương thức thứ nhất.

Tôi đã khuyến nghị bạn chuẩn bị phát hành trước trên một hành động duy nhất và sau đó bạn có thể chỉnh sửa tệp release.properations trên giám đốc làm việc và xem các exec.additionalArgumentsthuộc tính nếu các đối số của bạn ở đó. Nó sẽ trông giống như : exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode.

Sau khi bạn có thể thực hiện việc phát hành.


2

Để bỏ qua toàn bộ bài kiểm tra đơn vị, nó sử dụng đối số

-Dmaven.test.skip = đúng

Vì vậy, nếu bạn muốn bỏ qua bài kiểm tra Đơn vị, điều này sẽ giải quyết

mvn install -Dmaven.test.skip=true
mvn package -Dmaven.test.skip=true

hoặc cách khác, bạn có thể xác định SkipTests trong maven-Surefire-plugin trong

pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.12.4</version>
      <configuration>
         <skipTests>true</skipTests>
      </configuration>
</plugin>

2
Câu hỏi này đặc biệt về plugin phát hành Maven, vì vậy đây không phải là mục tiêu Maven sẽ được sử dụng.
Jaap

-2

Không có trình cắm maven theo nghĩa đen kích hoạt kiểm tra biên dịch hoặc thực thi. Đó là các giai đoạn trong vòng đời của maven kích hoạt (các) thực thi của một hoặc nhiều trình cắm, khi các giai đoạn này đã giới hạn các mục tiêu cho giai đoạn cụ thể.

Vì vậy, chỉ cần thực hiện một mục tiêu trình cắm thêm là đủ mà không cần thực hiện các kiểm tra:

mvn release:perform

hoặc kết hợp với xây dựng và đóng gói dự án:

mvn clean package release:perform
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.