Tôi đang sử dụng Maven 3.0.3 với Git. Tôi sử dụng một công cụ tích hợp (Bamboo) để kiểm tra một chi nhánh mã từ Git vào một thư mục. Công cụ này sau đó sử dụng Maven chạy vòng đời xây dựng tiêu chuẩn (biên dịch, thử nghiệm, triển khai). Điều tôi muốn là nếu nhiệm vụ triển khai Maven của tôi thành công, tôi muốn gắn thẻ phiên bản mã của tôi được kiểm tra trong Git. Làm thế nào tôi có thể làm điều này từ Maven? Bất kỳ cấu hình mẫu nào bạn có thể cung cấp đều được đánh giá cao.Sử dụng Maven, Git: Làm cách nào để gắn thẻ phiên bản mới nhất của mã?
Trả lời
Sử dụng maven scm plugin. Xem tag functionality in advanced features, cần phải có liên quan.
Hiện tại, hỗ trợ git không xuất hiện, do đó bạn cần phụ thuộc vào maven-scm-provider-gitexe. Ngoài ra, để khắc phục plexus exception issue, bạn cũng sẽ cần phải thêm phụ thuộc vào phiên bản sau của plexus.
Đây là những gì làm việc cho tôi:
<project>
<scm>
<connection>scm:git:https://[email protected]/my-project.git</connection>
<developerConnection>scm:git:https://[email protected]/my-project.git</developerConnection>
</scm>
<!-- snip -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<version>1.0</version>
<configuration>
<tag>test</tag>
<connectionType>connection</connectionType>
</configuration>
<executions>
<execution>
<id>tag</id>
<phase>deploy</phase>
<goals>
<goal>tag</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- snip -->
</project>
Các maven-release-plugin có thể làm điều này cho bạn - xem một ví dụ ở đây: http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html
Tôi khuyên bạn nên dự án mã nguồn mở nhỏ tôi m một phần của -it được gọi là Quicktag và hoạt động với một vài VCS - https://code.google.com/p/quicktag-maven-plugin. Thêm plugin và nó sẽ tạo ra lớp Java với các trường tĩnh chứa thông tin xây dựng.
maven-release-Plugin chỉ cần khai báo scm:
<scm>
<url>https://github.com/username/repoName</url>
<connection>scm:git:git://github.com/username/repoName.git</connection>
<developerConnection>scm:git:[email protected]:username/repoName.git</developerConnection>
<tag>HEAD</tag>
</scm>
tạo phím git ssh
https://help.github.com/articles/generating-ssh-keys/
và chạy phát hành mvn: chuẩn bị
thêm từ https://github.com/kevinsawicki/github-maven-example
- 1. Mercurial, cách gắn thẻ phiên bản cũ của
- 2. Sử dụng Tortoise SVN, làm cách nào để tải xuống phiên bản mã nguồn mới nhất của ứng dụng CodePlex?
- 3. Cách gắn thẻ một tệp trong GIT
- 4. git: Tự động gắn thẻ các bản phát hành
- 5. Làm cách nào để tìm phiên bản mới nhất của một tạo phẩm từ kho lưu trữ maven
- 6. Làm cách nào để gắn thẻ kho lưu trữ git của tôi bằng ứng dụng GitHub Mac?
- 7. Tôi làm cách nào để sử dụng phiên bản Scala 2.9 hàng đêm với maven?
- 8. Làm cách nào để đọc thông tin về trình gắn thẻ từ thẻ git?
- 9. cách sử dụng thẻ trong GIT
- 10. Gắn thẻ nhiều nhánh trong git?
- 11. Làm thế nào tôi có thể sử dụng phiên bản mới nhất của đá quý Sunspot với Solr Cell?
- 12. Sử dụng API còn lại của Nexus để nhận phiên bản tạo tác mới nhất cho nhóm/artifactId nhất định
- 13. Tạo khóa GPG cho gắn thẻ git
- 14. Tôi làm cách nào để nâng cấp phiên bản của plugin maven?
- 15. Làm cách nào để tạo một bản vá từ cam kết git mới nhất của tôi?
- 16. Làm cách nào để phát hành với BitBucket + Git + Maven
- 17. Làm cách nào để Subversion chỉ giữ phiên bản mới nhất của một tệp?
- 18. Cách cài đặt phiên bản mới nhất của vải
- 19. Làm cách nào để chỉ định thẻ git khi cấu hình của plugin SCM Maven?
- 20. Tôi làm cách nào để cam kết thẻ git?
- 21. Làm thế nào để git quyết định phiên bản nào của svn để sử dụng trong git-svn?
- 22. Gia tăng Phiên bản Dự án Maven với Jenkins/Git
- 23. Làm cách nào để trang trí một bản ghi git bằng thẻ gần nhất?
- 24. Phiên bản mới nhất của gcc để sử dụng libstdC++. So.5
- 25. Phiên bản mới của một ứng dụng
- 26. Mã nguồn khác với phiên bản gốc
- 27. Làm cách nào để nâng cấp Thư viện doanh nghiệp lên phiên bản mới nhất?
- 28. Git: Quản lý từng phiên bản ứng dụng của tôi?
- 29. Mã để kiểm tra các bản cập nhật, cài đặt phiên bản mới của ứng dụng
- 30. Git gắn thẻ và đường ray gemfile
COOL, điều này làm những gì tôi muốn, mặc dù khi tôi chạy nó back-to-back lần, tôi nhận được một lỗi "[ERROR] gây tử vong: thẻ 'qa_release' đã tồn tại" trên lần chạy thứ hai. Tôi có thể phải mở câu hỏi này như một câu hỏi khác. – Dave
có, bạn sẽ cần một cái gì đó động (một thuộc tính) cho tên thẻ, trong ví dụ này nó là tĩnh. – eis
nếu thẻ mới nhất có thể được cung cấp dưới dạng thông số dòng lệnh, bạn chỉ có thể sử dụng $ {parameter.version} và chạy maven với -Dparameter.version = v1.2, sau đó sẽ được sử dụng. Nếu autogeneration bởi maven plugin là cần thiết, một số logic bổ sung là cần thiết. –
eis