Tôi có một dự án Java Web Application lớn sử dụng Maven và tôi cần bắt đầu một dự án mới sẽ chia sẻ hầu hết cùng một mã (vì vậy tôi không phải lặp lại công việc), nhưng không phải tất cả. Tôi sẽ sao chép mã chia sẻ vào một dự án mới (hãy gọi nó là "root"). Làm thế nào để làm cho dự án ban đầu của tôi phụ thuộc vào root cho mã nguồn? Tôi không thể chỉ nói nó vì tôi muốn thay đổi nguồn trước khi biên dịch.Làm thế nào để bạn sử dụng Maven để chia sẻ mã nguồn cho hai dự án?
Trả lời
Bạn nên cấu trúc lại dự án của mình.
- Xác định mã chung
- Extract đó vào mô-đun maven riêng của mình
2.1. thường là ứng dụng web là đa mô-đun, vì vậy nếu bạn định chia sẻ thư viện chung trên hai ứng dụng web, sau đó tách riêng thư viện chung thành id nhóm riêng của mình - Xây dựng và cài đặt tệp jar vào kho lưu trữ của bạn
- thay đổi số lượng các ứng dụng web tùy thuộc vào thư viện mới của bạn
Tạo dự án maven chứa tất cả mã được chia sẻ của bạn. Giữ nguyên bao bì của dự án này (trong tệp pom.xml chính) làm jar. Điều này sẽ giúp làm cho loại dự án này của thư viện cho việc sử dụng của bạn.
Trong tất cả các dự án truy cập mã được chia sẻ, hãy thêm sự phụ thuộc cho dự án này theo nhu cầu của bạn. (biên dịch, cung cấp).
Bây giờ gói và cài đặt dự án được chia sẻ trước khi bạn tạo bất kỳ dự án phụ thuộc nào. Điều này sẽ thêm dự án được chia sẻ vào kho lưu trữ cục bộ của bạn, sau đó có thể được sử dụng bởi các dự án phụ thuộc của bạn.
Thêm tệp mẫu pom.xml cho các dự án được chia sẻ và phụ thuộc.
Dự án được chia sẻ pom.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>com.myspace.test</artifactId>
<groupId>com.myspace</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.myspace</groupId>
<artifactId>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>shared-module</name>
<description>shared module which contains code shared by other modules.</description>
</project>
pom của dự án phụ thuộc.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>com.myspace.test</artifactId>
<groupId>com.myspace</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.myspace</groupId>
<artifactId>dependent-module</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>dependent-module</name>
<description>Dependent module.</description>
<dependencies>
<dependency>
<groupId>com.myspace</groupId>
<artifactId>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Dự án phụ huynh có thể được thêm tùy chọn trong trường hợp tổ chức này được yêu cầu. Hy vọng điều này sẽ hữu ích.
Cài đặt mã được chia sẻ, sử dụng thiết lập bao bì hiện tại của bạn jar:
mvn install
Sau đó, bạn có thể tạo ra một sự phụ thuộc trong pom.xml con (mã mà không được chia sẻ) từ bất cứ kho bạn cài đặt vào.
Đây là thực tiễn tốt nói chung không chỉ để tránh lặp lại công việc mà còn trong trường hợp bạn muốn thay đổi việc thực hiện các tài nguyên được chia sẻ. Bạn có thể thay đổi logic ở một nơi, cài đặt nó vào kho lưu trữ và các dự án khác phụ thuộc vào mã đó sẽ sử dụng mã mới vào lần sau khi chúng được biên dịch.
- 1. Chia sẻ mã giữa hai dự án git khác nhau
- 2. Làm thế nào để chia sẻ các thuộc tính chung giữa một số dự án maven?
- 3. Giấy phép mã nguồn nào để sử dụng cho dự án của bạn?
- 4. Thiết kế dự án Maven - chia sẻ một dự án chung
- 5. Làm thế nào để bạn chuyển một dự án mã nguồn mở?
- 6. Tôi muốn sử dụng maven cho dự án GAE, làm thế nào để tôi làm?
- 7. Sử dụng Maven cho dự án R
- 8. Chia sẻ mã giữa các dự án trong tfs 2010
- 9. Cách tốt nhất để chia sẻ các tệp nguồn Delphi giữa các dự án là gì?
- 10. resx chia sẻ giữa các dự án
- 11. Eclipse: chia sẻ mã giữa nhiều dự án
- 12. Làm thế nào để sử dụng maven checkstyle plugin trong dự án đa mô-đun?
- 13. Sử dụng Maven để phân phối dự án
- 14. Làm cách nào để làm việc với các hội đồng và dự án được chia sẻ?
- 15. Làm cách nào để chia sẻ tệp tài nguyên giữa các dự án trong Visual Studio?
- 16. Làm thế nào để Proguard hai dự án android?
- 17. Làm thế nào để bạn tin tưởng các dự án nguồn mở một cách chính xác?
- 18. Làm thế nào để bạn sử dụng dòng lệnh Ubuntu để kéo một dự án được tải lên Git?
- 19. Sử dụng Maven cho các dự án C/C++
- 20. Eclipse "Chia sẻ dự án" bằng tay?
- 21. SVN: Cách tốt nhất để chia sẻ mã phổ biến trên các dự án
- 22. Làm cách nào để chia dự án của bạn thành các ứng dụng trong Django?
- 23. Làm cách nào để chia sẻ cùng một Phiên bản Sản phẩm giữa hai dự án Visual C++?
- 24. Nhiều ứng dụng có mã chia sẻ
- 25. Các dự án mã nguồn mở sử dụng tệp nguồn Wix để tìm hiểu từ
- 26. Mercurial: Làm thế nào để quản lý mã phổ biến/chia sẻ
- 27. Phân chia dự án mã nguồn mở Apache và dự án mã nguồn mở v2 và thông báo bản quyền
- 28. Maven - Làm thế nào để xây dựng nhiều dự án độc lập Maven từ một dự án
- 29. Làm thế nào để bạn "Mavenize" một dự án sử dụng Intellij?
- 30. Làm thế nào để bạn tạo các dự án Xcode lai cho Mac & iPhone?
Làm việc cho tôi. Cảm ơn. – teteArg