Làm thế nào để cài đặt thủ công một tạo tác trong Maven 2?


96

Tôi đã gặp một số lỗi khi cố gắng cài đặt thủ công một tạo tác với Maven 2. Tôi muốn cài đặt một jar từ thư mục cục bộ bằng lệnh

mvn install:install-file -Dfile=jta-1.0.1B.jar

Nhưng Maven đã đưa ra một lỗi xây dựng có nội dung như:

Invalid task '.01B.jar': you must
specify a valid lifecycle phase, or a
goal in the format plugin:goal or
pluginGroupId:pluginArtifactId:pluginVersion:goal

Có lỗi với lệnh của tôi không?


Tình trạng của điều này là gì? Câu hỏi của bạn đã được giải quyết chưa?
Matt

Câu trả lời:


147

Bạn cần chỉ ra groupId, tạo tác và phiên bản cho tạo tác của mình:

mvn install:install-file \
  -DgroupId=javax.transaction \
  -DartifactId=jta \
  -Dpackaging=jar \
  -Dversion=1.0.1B \
  -Dfile=jta-1.0.1B.jar \
  -DgeneratePom=true

8
-Dpackaging = jar hoặc tương tự là mất tích
kaboom

@kaboom Không! Theo mặc định, bao bì là jar, do đó bạn không cần phải xác định này trong lệnh ...
Romain Linsolas

5
@romaintaz kaboom là đúng; bạn cần -Dpackaging = jar (hoặc bất kỳ loại nào) nếu không bạn sẽ gặp lỗi về "thiếu gói". "
Jack Edmonds

3
Có vẻ như thông số đóng gói là cần thiết ngoại trừ trường hợp bạn cung cấp tệp pom. Trong trường hợp thứ hai, loại gói được lấy từ pom.
Romain Linsolas

1
Nếu sử dụng PowerShell, hãy chắc chắn bạn sử dụng trích dẫn tương tự như vậy"-DgroupId=javax.transaction"
ankitjaininfo

38

Theo Hướng dẫn cài đặt JAR của bên thứ 3 của maven , lệnh là:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

Bạn thực sự cần tùy chọn đóng gói. Điều này trả lời câu hỏi ban đầu.

Bây giờ, trong bối cảnh của bạn, bạn đang chiến đấu với một cái lọ do Sun cung cấp. Bạn cũng nên đọc trang Coping with Sun JARs . Ở đó, bạn sẽ học cách để giúp đỡ maven để cung cấp cho bạn thông tin tốt hơn về vị trí Sun lọ và làm thế nào để thêm Java.net Maven 2 khochứa jta-1.0.1B.jar . Thêm cái này vào của bạn settings.xml(không di động) hoặc pom.xml (di động) của bạn:

  <repositories>
    <repository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/2/</url>
      <layout>default</layout>
    </repository>
  </repositories>

13

Tôi đã phải thêm bao bì, vì vậy:

mvn install:install-file \
  -DgroupId=javax.transaction \
  -DartifactId=jta \
  -Dversion=1.0.1B \
  -Dfile=jta-1.0.1B.jar \
  -DgeneratePom=true \
  -Dpackaging=jar

Tôi đã gặp rất nhiều vấn đề khi cài đặt tệp jar theo cách thủ công và nó liên tục không thành công cho đến khi tôi nhập chính xác theo cách này. Bây giờ nó hoạt động!
gregturn


4

Nếu bạn từng gặp các lỗi tương tự khi sử dụng Windows PowerShell, bạn nên thử dòng lệnh đơn giản của Windows. Tôi không tìm ra nguyên nhân gây ra điều này, nhưng PowerShell dường như giải thích một số thông số của Maven.


Hãy xem câu trả lời của S. Bollweber ở trên. Và ít nhất TakeCommand thể hiện cùng một bahaviour.
Martin

1
Không có lý do gì để từ chối câu trả lời của tôi - S. Bollweber tự trả lời sau vài tháng.
Koraktor

2

Tất cả các câu trả lời được đăng đều thảo luận đúng về điều này từ góc độ maven nghiêm ngặt. Vấn đề của tôi là khi thực hiện cài đặt này cho maven bằng cách sử dụng Netbeans làm IDE chính của tôi. Tôi thấy bài viết dưới đây hữu ích.

Tín dụng cho bài viết sau trên diễn đàn netbeans: http://forums.netbeans.org/topic22907.html

  1. Trong dự án Maven, mở hộp thoại "Thêm phụ thuộc"
  2. Tạo một số groupId, tạo tác và phiên bản và điền chúng, OK.
  3. Sự phụ thuộc sẽ được thêm vào pom.xml và sẽ xuất hiện trong nút "Thư viện" của dự án maven
  4. Nhấp chuột phải vào nút Lib và "cài đặt thủ công tạo tác", điền vào đường dẫn đến bình. Jar phải được cài đặt vào repo Maven cục bộ với tọa độ được nhập ở bước 2)
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.