it-swarm-vi.tech

Maven có thể được thực hiện ít dài dòng hơn?

Maven nói ra quá nhiều dòng sản phẩm theo sở thích của tôi (tôi thích cách Unix: không có tin nào là tin tốt).

Tôi muốn thoát khỏi tất cả các dòng [INFO], nhưng tôi không thể tìm thấy bất kỳ đề cập nào về đối số hoặc cài đặt cấu hình kiểm soát mức độ chi tiết của Maven.

Có cách nào giống như LOG4J để đặt mức ghi nhật ký không?

82
Asaf Bartov

Bạn có thể thử chuyển đổi -q .

-q, - Đầu ra yên tĩnh - chỉ hiển thị lỗi

103
Jorge Ferreira

- q như đã nói ở trên là những gì bạn cần. Một sự thay thế có thể là

- B, - chế độ hàng loạt Chạy ở chế độ không tương tác (lô) Chế độ hàng loạt là điều cần thiết nếu bạn cần chạy Maven trong môi trường tích hợp liên tục, không tương tác . Khi chạy ở chế độ không tương tác, Maven sẽ không bao giờ dừng để chấp nhận đầu vào từ người dùng. Thay vào đó, nó sẽ sử dụng các giá trị mặc định hợp lý khi yêu cầu đầu vào.

Và cũng sẽ giảm các thông điệp đầu ra ít nhiều đến mức cần thiết.

24
Stanislav

Sử dụng các tùy chọn dòng lệnh -q hoặc --quiet

6
Sietse

Liên kết chính thức: https://maven.Apache.org/maven-logging.html

Bạn có thể thêm vào các tham số JVM:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

Cẩn thận với UPPERCASE.

5
jgrtalk

Câu trả lời hiện có giúp bạn lọc dựa trên cấp độ nhật ký bằng cách sử dụng --quiet. Tôi thấy rằng nhiều tin nhắn INFO rất hữu ích để gỡ lỗi, tuy nhiên việc tải xuống các thông điệp nhật ký giả như sau đây là ồn ào và không hữu ích.

Downloading: http://nexus:8081/nexus/content/groups/public/org/Apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml

Tôi tìm thấy giải pháp này:

https://bloss.itemis.com/en/in-a-nutshell-removing-artifact-messages-from-maven-log-output

mvn clean install -B -Dorg.slf4j.simpleLogger.log.org.Apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
0
errant.info

Maven 3.1.x sử dụng SLF4j để đăng nhập, bạn có thể tìm thấy hướng dẫn cách định cấu hình tại https://maven.Apache.org/maven-logging.html

Tóm lại: Hoặc sửa đổi ${MAVEN_HOME}/conf/logging/simplelogger.properties hoặc đặt các thuộc tính tương tự thông qua biến môi trường MAVEN_OPTS.

Ví dụ: đặt MAVEN_OPTS thành -Dorg.slf4j.simpleLogger.log.org.Apache.maven.cl‌​i.transfer.Slf4jMave‌​nTransferListener=wa‌​rn định cấu hình ghi nhật ký của trình nghe chuyển chế độ hàng loạt và -Dorg.slf4j.simpleLogger.defaultLogLevel=warn đặt mức nhật ký mặc định.

0
ankon

Nếu bạn chỉ muốn thoát khỏi các tin nhắn [INFO] bạn cũng có thể làm:

mvn ... | fgrep -v "[INFO]"

Để chặn tất cả đầu ra (trừ lỗi), bạn có thể chuyển hướng stdout sang /dev/null với:

mvn ... 1>/dev/null

(Điều này chỉ hoạt động nếu bạn sử dụng bash (hoặc các shell tương tự) để chạy các lệnh Maven.)

0
m13r

Vấn đề của tôi là -q quá yên tĩnh. Tôi đang chạy maven theo CI

Với Maven 3.6.1 (Tháng 4 năm 2019) , giờ đây bạn có tùy chọn để chặn tiến trình chuyển khi tải xuống/tải lên ở chế độ tương tác .

mvn --no-transfer-progress ....

hoặc nói ngắn gọn:

mvn -ntp ... ....

Đó là những gì Ray đề xuất trong các nhận xét với MNG-6605PR 239 .

0
VonC