Maven - Luôn tải xuống các nguồn và javadocs


244

Có cách nào để tôi có thể định cấu hình maven để luôn tải xuống các nguồn và javadocs không? Việc chỉ định -DdownloadSources=true -DdownloadJavadocs=truemọi lúc (thường đi cùng với việc chạy mvn biên dịch hai lần vì tôi quên lần đầu tiên) trở nên khá tẻ nhạt.


Đây có phải là cho plugin nhật thực? Dù sao thì bạn cũng không nên chạy nó thường xuyên ...
sjr

1
Không, nó là dành cho chương trình dòng lệnh. Tôi không phải chạy nó thường xuyên, nhưng sẽ rất tuyệt nếu tôi phải chạy nó không bao giờ!
schmmd

1
Dòng lệnh là gì? Đây là khi bạn làm mvn eclipse:eclipseđúng?
sjr

14
@sjr, có để tải xuống các nguồn và javadocs người ta có thể thực thimvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Yuriy Nakonechnyy

Tôi nghĩ rằng câu hỏi này vẫn còn không trả lời. Câu trả lời được chấp nhận chỉ liên quan đến plugin Eclipse. Câu trả lời của @ AlexisGamarra là gần nhất nhưng không giải quyết được "tính bền bỉ" của giải pháp - nó không đặt Maven làm điều đó luôn bất cứ khi nào bạn chạy cài đặt mvn .
Honza Zidek

Câu trả lời:


265

Mở tệp settings.xml của bạn ~/.m2/settings.xml (tạo tệp nếu nó không tồn tại). Thêm một phần với các thuộc tính được thêm vào. Sau đó, đảm bảo activeProfiles bao gồm hồ sơ mới.

<settings>

   <!-- ... other settings here ... -->

    <profiles>
        <profile>
            <id>downloadSources</id>
            <properties>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </properties>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>downloadSources</activeProfile>
    </activeProfiles>
</settings>

6
Tôi đang thử các thuộc tính hồ sơ này trong Maven 2.2.1 và 3.0.2 và chúng không hoạt động. Kho mục tiêu là Archiva. Bất kỳ đề nghị về những gì khác có thể được thử? Tôi cũng đã thử sử dụng phụ thuộc: mục tiêu nguồn. Cảm ơn
jmend

18
Hơn nữa, trong Eclipse, bạn chỉ có thể đi tới Tùy chọn -> Maven (Không có danh mục con). Ở đó, bạn có thể kiểm tra "Tải xuống Nguồn tạo tác / JavaDocs". Tuy nhiên, đôi khi Eclipse không muốn tạo tệp đó theo cách thủ công (đã xảy ra với tôi trong Luna). Trong trường hợp đó - đến đó, dán câu trả lời này được bọc trong các thẻ cài đặt và yêu cầu Eclipse tải lại nó và nó sẽ hoạt động.
Andrei Bârsan

9
Điều này làm việc với tôi: trong Eclipse đi tới Tùy chọn -> Maven (Không có danh mục con). Kiểm tra - "Tải xuống nguồn tạo tác" - "Tải xuống JavaDocs tạo tác" - "Cập nhật các dự án Maven khi khởi động" (chỉ vì tôi không thể tìm thấy cách thủ công) Sau đó khởi động lại Eclipse. Xong
Dirk

4
Điều này chỉ ảnh hưởng đến plugin Maven Eclipse.
Jingguo Yao

9
Đây không phải là câu trả lời được chấp nhận! Như @JingguoYao đã nêu, nó chỉ ảnh hưởng đến plugin Maven Eclipse. Câu hỏi ban đầu không bị ràng buộc với Eclipse, mà là với chính Maven.
Honza Zidek

195

Trong trường hợp của tôi, giải pháp "settings.xml" không hoạt động nên tôi sử dụng lệnh này để tải xuống tất cả các nguồn:

mvn dependency:sources

Bạn cũng có thể sử dụng nó với các lệnh maven khác, ví dụ:

mvn clean install dependency:sources -Dmaven.test.skip=true

Để tải xuống tất cả tài liệu, sử dụng lệnh sau:

mvn dependency:resolve -Dclassifier=javadoc

1
Tôi nghĩ rằng câu hỏi này vẫn còn không trả lời. Câu trả lời được chấp nhận chỉ liên quan đến plugin Eclipse. Câu trả lời của bạn là gần nhất nhưng không giải quyết được "kiên trì" của giải pháp - nó không đặt Maven để làm điều đó luôn bất cứ khi nào bạn chạy mvn cài đặt .
Honza Zidek

52

Chỉ cần hợp nhất và chuẩn bị một lệnh duy nhất để tải xuống nguồn và tài liệu tải xuống ...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc

42

Trả lời cho những người từ Google

Trong Eclipse, bạn có thể tự động tải xuống javadoccác nguồn .

Để làm điều đó, nhấp chuột phải vào dự án và sử dụng

  • Maven -> Tải xuống JavaDoc
  • Maven -> Tải xuống nguồn

3
Và trong IDEA, bạn có thể nhấp chuột phải vào Mô-đun và trong menu Maven, có một tùy chọn để tải xuống các nguồn và / hoặc tài liệu
forresthopkinsa

@Betlista đọc dòng đầu tiên của bài viết. Rất nhiều người đi từ google đến đây để tìm kiếm một cái gì đó khác. Nhưng cuối cùng lại đến đây, thậm chí với các từ khóa khác nhau
Ghandhikus

14

Tôi đang sử dụng Maven 3.3.3 và không thể có cấu hình mặc định để hoạt động trong settings.xmltệp người dùng hoặc toàn cầu .

Như một giải pháp thay thế, bạn cũng có thể thêm một plugin xây dựng bổ sung vào pom.xmltệp của mình .

<properties>
    <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
</properties>
<build>
    <plugins>
        <!-- Download Java source JARs. -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>${maven-dependency-plugin.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>sources</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

7

Trên NetBeans : mở trình thám hiểm dự án của bạn-> Phụ thuộc -> [ file.jar ] rightclick-> Tải xuống Javadoc


4

Như @ xecaps12 đã nói, cách tiếp cận đơn giản / hiệu quả nhất là thay đổi tệp cài đặt Maven của bạn (~ / .m2 / settings.xml) nhưng nếu đó là cài đặt mặc định cho bạn, bạn cũng có thể đặt nó như thế

<profile>
  <id>downloadSources</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
      <downloadSources>true</downloadSources>
      <downloadJavadocs>true</downloadJavadocs>
  </properties>
</profile>

Điều này không thực sự hoạt động, bạn chỉ đang khai báo các thuộc tính toàn cầu không sử dụng. Tôi tin rằng giải pháp huyền thoại đến từ maven-eclipse-plugin: maven.apache.org/plugins/maven-eclipse-plugin/examples/ Kẻ
inanutshellus

Không, đó chỉ là một sự đơn giản hóa của câu trả lời "đã giải quyết";)
Kraiss

1
Phiên bản "đã giải quyết" cũng không hoạt động. (Tôi cũng đã đưa ra nhận xét tương tự ở đó, nhưng đã tạm thời xóa nó trong khi tôi trao đổi với bạn.) Vậy - bạn có đang nói câu trả lời của bạn (và do đó câu trả lời được giải quyết) thực sự có hiệu quả với bạn không ?? Ý tôi là, có 159 người đã tải lên câu trả lời sai hoặc lỗi thời đó, vì vậy rõ ràng nó có tác dụng với ai đó. Nếu nó hoạt động như bạn nói, thì tôi đang làm điều gì đó sai, cũng như nhiều người về câu trả lời được giải quyết trong các bình luận của nó và tôi rất thích tìm hiểu điều đó và làm cho nó hoạt động.
inanutshellus

Tôi cho rằng các var toàn cầu được kiểm tra bởi plugin nhật thực khi bạn thực sự phát triển với eclise. việc tìm nạp nguồn được thực hiện bằng nhật thực chứ không phải bởi maven trên dòng lệnh.
Jonatan Cloutier

1

Tôi nghĩ rằng nó có thể được thực hiện cho mỗi plugin. Xem chương này từ cuốn sách Maven.

Bạn có thể định cấu hình plugin phụ thuộc để tải xuống các nguồn (mặc dù tôi chưa tự mình thử :-).


1

Trong Netbeans, bạn có thể hướng dẫn Maven kiểm tra javadoc trên mỗi dự án mở:

Tools| Options| Javabiểu tượng | Maventab | Dependenciesthể loại | Check Javadocthả xuống đặt thànhEvery Project Open .

Đóng và mở lại Netbeans và bạn sẽ thấy Maven tải javadocs trong thanh trạng thái.


0

Không chắc chắn, nhưng bạn sẽ có thể làm điều gì đó bằng cách đặt cấu hình hoạt động mặc định trong tệp settings.xml của bạn

Xem

Xem http://maven.apache.org/guides/int sinhtion / int sinhtion-to-profiles.html


Ah! Chính xác như được mô tả bởi @ xecaps12
pgbsl

9
Bạn thực sự nên sao chép các phần có liên quan từ liên kết vào câu trả lời của bạn, chỉ trong trường hợp URL bị hỏng.
Duncan Jones

0

Chỉ cần sửa đổi tệp mvn(hoặc mvn.cmdnếu trong cửa sổ) và thêm bất kỳ chuyển đổi dòng lệnh nào bạn cần (như được đề cập bởi các câu trả lời khác). Nếu bạn không muốn sửa đổi các tệp cài đặt (mà tôi khuyên dùng), hãy tạo một trình bao bọc mymvn(hoặc mymvn.cmd) gọi thông thường mvnvới các tham số.


0

Tôi đã phải sử dụng KeyStore để tải xuống các lọ. Nếu bạn có bất kỳ vấn đề nào liên quan đến Chứng chỉ, bạn có thể sử dụng phương pháp này:

mvn clean install dependency:sources -Dmaven.test.skip=true -Djavax.net.ssl.trustStore="Path_To_Your_KeyStore"

Nếu bạn muốn biết cách tạo KeyStores, đây là một liên kết rất tốt: Các vấn đề khi sử dụng Maven và SSL đằng sau proxy


0

Đối với các nguồn ở mức độ phụ thuộc (pom.xml), bạn có thể thêm:

<classifier>sources</classifier>

0

Để theo dõi câu trả lời từ kevinarpe , cả hai nguồn và Javadocs:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>sources</goal>
                            <goal>resolve</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <classifier>javadoc</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>
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.