“Không thể bắt đầu biên dịch: đường dẫn đầu ra không được chỉ định cho mô-đun…”


108

Tôi có một dự án Java + Gradle rất đơn giản. Nó xây dựng tốt. Nó chạy tốt từ shell với "gradle run". Tuy nhiên, nếu tôi cố gắng chạy bên trong IntelliJ, tôi nhận được:

Cannot start compilation: the output path is not specified for module "xyz" Specify the output path in Configure Project.

"Đầu ra trình biên dịch" của tôi được đặt thành "Kế thừa đường dẫn đầu ra biên dịch của dự án". Tôi không muốn một đường dẫn đầu ra tùy chỉnh, bất kể đó là gì, chỉ cần tạo và chạy gradle bình thường.


1
Khi chạy mã từ IntelliJ, nó sẽ được biên dịch và chạy bởi IntelliJ chứ không phải Gradle, và một thư mục xuất bản dựng khác sẽ được sử dụng. (Android là một câu chuyện khác.) Tuy nhiên, nếu bản dựng Gradle được nhập đúng cách, thì thư mục đầu ra IntelliJ sẽ được định cấu hình.
Peter Niederwieser

Câu trả lời:


102

Bạn chỉ cần đi đến của bạn Module settings > Projectvà chỉ định một "Đầu ra của trình biên dịch dự án" và làm cho các mô-đun của bạn kế thừa từ dự án. (Đối với điều đó đi đến Modules > Paths > Inherit project.

Điều này đã làm các mẹo cho tôi.


20
Vâng, không phải lựa chọn các Inherit Projecttùy chọn làm việc cho tôi
Krish Munot

6
Tại sao nó không thể tìm ra điều này cho chính nó. Mọi người đều nói IntelliJ tốt hơn Eclipse nhưng theo kinh nghiệm của tôi, nó không thể tự suy nghĩ được.
Andrew S

FYI, tôi thấy rằng trong IntelliJ, bạn thực hiện Tệp> Mới> Mô-đun ... và tạo một mô-đun Java, đường dẫn đầu ra sẽ được đặt theo mặc định.
J Woodchuck

Nếu cách này không hoạt động, đừng quên khởi động lại IntelliJ. Đã sửa nó cho tôi.
Cobie Fisher

97

Bạn phải xác định một đường dẫn trong trường " Đầu ra trình biên dịch dự án " trong

File> Project Structure...> Project>Project compiler output

Đường dẫn này sẽ được sử dụng để lưu trữ tất cả các kết quả biên dịch của dự án .


10

Trong khi định cấu hình plugin ý tưởng trong gradle, bạn nên xác định các thư mục đầu ra như sau.

idea{
    module{
        inheritOutputDirs = false
        outputDir = compileJava.destinationDir
        testOutputDir = compileTestJava.destinationDir
    }
}

trông thật tuyệt. Tôi đặt cấu hình này vào tệp nào?
đất sét,

Bạn nên đặt nó vào tệp build.gradle trong dự án của mình.
lemiorhan

10

Tôi trả lời điều này để tôi có thể tìm ra giải pháp khi tôi phải google lại lỗi này.

Đặt đường dẫn đầu ra biên dịch dự án thành path_of_the_project_folder/out. Đó là những gì đang hoạt động ngày hôm nay. Tài liệu intellj có vẻ như chúng ta có thể chọn bất kỳ thư mục nào nhưng không phải vậy.


7

Nếu không có phương pháp nào ở trên hoạt động thì hãy thử cách này.

Đi tới Tệp> Cấu trúc Dự án> Dự án và sau đó trong Đầu ra Trình biên dịch Dự án, nhấp vào ba dấu chấm và cung cấp đường dẫn tên dự án của bạn (tên tệp), sau đó nhấp vào Áp dụng và hơn trên Ok .

Nó phải giống như trong hình ảnh tôi đăng.


8
Không có hình ảnh trong câu trả lời của bạn.
James Whiteley

2
@priyanshu: Nghiêm túc mà nói, không có hình ảnh nào trong bài đăng của bạn.
Pawan

4

Mở tệp .iml. Tìm từ khóa 'NewModuleRootManager'. Kiểm tra xem thuộc tính 'inherit-compiler-output' có được đặt thành true hay không. Nếu không được đặt thành true.

Như thế này :

component name="NewModuleRootManager" inherit-compiler-output="true">
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" />


1

Sau đây

Hai việc cần làm:

Cài đặt dự án> Đầu ra trình biên dịch dự án> Đặt nó là “Đường dẫn dự án (Đường dẫn dự án thực tế của bạn)” + ”\ out”.

Cài đặt dự án> Mô-đun> Đường dẫn> Chọn "Kế thừa đường dẫn biên dịch dự án" "

Nếu nút chạy không hoạt động

Bạn phải tải lại IDEA



0

thay đổi trình đơn thả xuống để bắt đầu tệp dự án của bạn

nhập mô tả hình ảnh ở đây


0

Tôi cũng gặp lỗi này khi tạo dự án trong IntelliJ mà không sử dụng mẫu.

Tôi đã cài đặt 2 SDK: Amazon Corretto và java phiên bản 11.0.4 và vì vậy, những gì tôi làm khi gặp lỗi này là "thay đổi SDK". Nó thường hoạt động tốt với Corretto

Để làm điều đó, bạn cần nhấp vào File (trong IntelliJ) / Project Structure / Project / Project SDK: chọn corretto từ danh sách thả xuống (hoặc kiểm tra tùy chọn trong máy tính của bạn) như được hiển thị ở đây

hy vọng điều này cũng sẽ làm việc cho bạn

Tốt nhất, Constantin


0

Lỗi do thiếu thư mục được xác định trước cho tệp lớp đã biên dịch lưu trữ, thường là thư mục nằm / ngoài theo mặc định. Bạn có thể thử đóng Intellij> Nhập dự án> Từ nguồn hiện có. Điều này sẽ giải quyết vấn đề này.

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.