2015-05-13 48 views
11

Tôi đã tạo một dự án maven mới trong IntelliJ và đặt bao bì thành lọ nhưng khi tôi tạo nó, thư mục đích không chứa một cái bình. Tôi chắc chắn rằng một cái gì đó của nó thực sự câm trên một phần của tôi nhưng có rất nhiều điều khác nhau tôi đang đọc trên các trang web khác nhau và tôi chỉ cảm thấy tốt hơn yêu cầu. enter image description hereTạo một cái bình từ dự án maven trong intellij

+2

khi bạn xây dựng nó, bạn có nhấp vào 'Maven Projects> Life Cycle> package' không? – ZhongYu

Trả lời

7

Bạn cần plugin maven jar để tạo ra một lọ

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <configuration> 
     <archive> 
      <manifest> 
       <addClasspath>true</addClasspath> 
       <classpathPrefix>lib/</classpathPrefix> 
       <mainClass>add your main class</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
</plugin> 

https://maven.apache.org/plugins/maven-jar-plugin/

+1

Tôi nghĩ rằng bình luận của bạn chỉ áp dụng cho một cái bình thực thi. OP không đề cập đến thực thi. – kiwiron

1

Giả sử rằng các màn hình-shot cho thấy các tập tin pom hoàn tất, bạn đang thiếu các mục xác định artifact . Hãy thử thêm một cái gì đó như thế này sau ngay sau thẻ:

<modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.example</groupId> 
    <artifactId>stackoverflow-question</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

Bạn nên kết thúc với stackoverflow-câu hỏi-0.0.1-SNAPSHOT.jar trong thư mục/mục tiêu của bạn. Bạn có thể cần phải làm mới thư mục để xem nó (Bạn chắc chắn phải có trong Eclipse)

14

Bạn nên xây dựng dự án của mình bằng cách sử dụng chế độ xem Maven Projects của IDEA.

Mở nó từ menu góc dưới bên trái:

menu

Và sau đó xây dựng dự án của bạn với các mục tiêu maven - tức là gói: maven project

Nếu bao bì được thiết lập để jar trong pom.xml, bạn sẽ lấy một cái bình trong target dir.

+0

Tôi đã làm điều đó và nó đã tạo ra cái bình giống như tôi muốn. Điều duy nhất là khi tôi thêm nó vào cấu trúc dự án của một dự án khác, tôi không thể truy cập vào lớp từ thư viện này. Tôi chỉ cần thêm một lớp SimpleUser để kiểm tra nó nhưng điều đó không hiển thị trong dự án khác của tôi. – Joe

+0

bạn có thể tạo một câu hỏi khác liên quan đến nó. đó là vấn đề quản lý phụ thuộc/classpath. – arghtype

Các vấn đề liên quan