Tôi đang sử dụng sonar 4.5.1 và nó tương thích với JDK 1.7 trở lên. Với các dự án có trên JDK1.6 trong Jenkins, tôi muốn thực hiện phân tích sonar bằng JDK1.7 . Để đạt được điều này dưới Jenkins, trong các mục tiêu và tùy chọn của maven, tôi đang sử dụng -Dsonar.java.source = jdk1.7.0_76 nhưng trong quá trình xây dựng, dường như jdk1.7.0_76 không được chọn để phân tích sonar. Phân tích Sonar vẫn đang được thực hiện với phiên bản JDK 1.6 được định nghĩa trong phần JDK trong Jenkins. Điều này dẫn đến lỗi xây dựng: "Trình tìm kiếm plugin không được hỗ trợ với Java 1.6.0_26". Tôi không muốn sử dụng sonar trong hành động sau khi xây dựng bởi vì nó ném một số lỗi khác vì vậy tôi muốn cung cấp các chi tiết sonar trong mục tiêu maven và các tùy chọn mà thôi. Tại sao jdk1.7.0_76 không được chọn? Tôi đang thiếu gì? Có cách nào khác để cung cấp phiên bản JDK1.7 không?
(Đã chỉnh sửa)
Yêu cầu của tôi: phân tích maven bằng cách sử dụng jdk 1.6 và phân tích sonar phải được thực hiện với jdk 1.7 trở lên (bước phân tích sonar được cung cấp trong mục tiêu maven và không sử dụng hành động Postar)
và tùy chọn
cài đặt sạch -Dmaven.test.skip = true -Dsonar.jdbc.url = jdbc: postgresql: //sonardb.test.com: 5555/sonar -Dsonar.host.url = http://localhost:9000/sonar -Dsonar.java.target = jdk1.8.0_40 -Dsonar.java.source = jdk1.8.0_40 org.codehaus.mojo: sonar-maven-plugin: 1.0: sonar -Dsonar.branch = test
Hãy tìm thấy bên dưới các ảnh chụp màn hình
Cung cấp phiên bản JDK trong mục tiêu và tùy chọn maven
Trả lời
Bạn cần chạy phân tích với Java 7 trở lên. Thuộc tính sonar.java.source
chỉ cho trình phân tích biết mã Java của bạn tương thích với phiên bản nào.
Bạn đang miễn phí để biên dịch mã của bạn với Java 6 (hoặc thấp hơn), nhưng máy quét (cho dù đó là SonarQube Scanner, SonarQube Scanner cho Maven, ...) phải chạy với Java 7.
có một cái nhìn tại mvn
kịch bản của bạn:
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
sự thay đổi này được thực hiện ở cấp độ của môi trường Maven của bạn. Trước khi khởi chạy Maven, bạn cần đặt biến môi trường JAVA_HOME
đến vị trí của phiên bản JDK 1.7 của bạn.
Tôi đoán bạn đang sử dụng một bước sau khi xây dựng execute shell
. Nếu bạn đang sử dụng bash
bạn chỉ cần gõ JAVA_HOME="path to your JDK 1.7 home"
trước dòng chứa lệnh mvn
bạn trong khu vực command
văn bản của cấu hình công việc Jenkins' của bạn như sau:
vui lòng tìm câu hỏi đã chỉnh sửa bằng ảnh chụp màn hình đã thêm. –
Nếu bạn muốn chạy phân tích bằng jdk thay thế, bạn phải sử dụng bước đăng! – Kraal
Bạn có ý nói rằng tham số này không hoạt động: -Dsonar.java.target = jdk1.8.0_40 -Dsonar.java.source = jdk1.8.0_40 nếu được cung cấp trong Mục tiêu và Tùy chọn? –
Mặc dù đây là một câu hỏi cũ vẫn trả lời vì lợi ích của người khác:
Nếu bạn định cấu hình trang của công việc và nhấp vào nút "Advance" cho plugin Sonar, bạn sẽ có tùy chọn để chọn JDK giống như được chọn dưới đây JDK 7 được chọn cho Jenkins của bạn (cho điều này bạn có thể vào Quản lý Jenkins):
- 1. maven cung cấp phạm vi
- 2. Phiên bản jdk plugin trình biên dịch Maven cho nguồn và đích
- 3. Tùy chọn 'SignInScheme' phải được cung cấp
- 4. Git Bỏ qua và mục tiêu Maven
- 5. Nhắm mục tiêu phiên bản khác nhau của JRE
- 6. Mục tiêu tùy chọn trong Cmake
- 7. Mục tiêu Maven tùy chỉnh trong IntelliJ IDEA
- 8. Thư viện tùy chọn trong bản dựng OpenCV cung cấp những gì?
- 9. Phiên bản Lite/Pro vs tùy chọn nâng cấp thanh toán trong ứng dụng
- 10. Phiên bản Maven Plugin trong Eclipse
- 11. Tùy chọn Biên dịch TypeScript: mô-đun vs mục tiêu
- 12. Tại sao trình duyệt cung cấp tùy chọn tắt Javascript?
- 13. Số phiên bản Maven trong tệp java
- 14. maven s3 toa xe nhà cung cấp
- 15. Phiên bản nào của sqlite mà iOS cung cấp?
- 16. Làm thế nào để tìm phiên bản JDK tối thiểu của một phiên bản cụ thể của phụ thuộc maven?
- 17. Nâng cấp phiên bản Scala trong dự án Maven ở IDEA
- 18. Phụ thuộc vào dự án Maven so với phiên bản JDK
- 19. JDK, JRE, Java: Phiên bản Lẫn lộn!
- 20. Thay đổi sang phiên bản JDK mới?
- 21. Phiên bản JDK sẽ được trình biên dịch Maven sử dụng ở đâu?
- 22. Tùy chọn nhóm bó trong trình cài đặt Eclipse phải cung cấp những gì?
- 23. tùy chỉnh các phiên bản Beanstalk Elastic
- 24. Được nhắm mục tiêu cho tùy chọn iPad trong Xcode
- 25. Đối số tùy chọn trong Mục tiêu-C 2.0?
- 26. Cung cấp một phiên bản JAXB khác cho JAX-WS trong Java 1.6
- 27. Tuyên truyền phiên bản trong Maven
- 28. Plugin phiên bản Maven-plugin Maven 2.2
- 29. Tìm nhà cung cấp/phiên bản trình biên dịch bằng cách sử dụng qmake
- 30. nhắm mục tiêu phiên bản frawework cụ thể trong csc.exe
Tôi không sử dụng trình điều khiển sóng siêu âm ở đây. Như tôi đã đề cập trong thư, tôi biết rằng phân tích nên được thực hiện với Java 7 hoặc cao hơn nhưng cách đúng (cú pháp) của việc cung cấp trong mục tiêu và tùy chọn maven là cái tôi đã đề cập là không được chấp nhận trong khi xây dựng. –
Bạn có thể cần phải cập nhật $ JAVA_HOME ngay trước và ngay sau khi phân tích –