Trong dự án hiện tại của tôi, chúng tôi sử dụng một số plugin cần thiết bởi các tham số plugin khác như plugin-maven-plugin hoặc plugin buildnumber.Cách liên kết mục tiêu plugin với mục tiêu plugin khác
<?xml version="1.0"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
<artifactId>myartifact</artifactId>
<packaging>pom</packaging>
<version>v0</version>
<name>myProject</name>
<properties>
<env>dev</env>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<configuration>
<files>
<file>${basedir}/configurations/${env}.properties</file>
</files>
</configuration>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.wakaleo.schemaspy</groupId>
<artifactId>maven-schemaspy-plugin</artifactId>
<version>1.0</version>
<configuration>
<databaseType>mysql</databaseType>
<database>${database.schema}</database>
<host>${database.host}</host>
<user>${database.user}</user>
<password>${database.pwd}</password>
</configuration>
</plugin>
</plugins>
</build>
</project>
Vấn đề là khi bạn thực hiện trực tiếp mục tiêu plugin, mục tiêu được ràng buộc trên giai đoạn khởi tạo (hoặc xác thực) sẽ không được thực hiện. Vì vậy, để tạo ra sơ đồ gián điệp chúng ta cần phải gõ:
$> mvn org.codehaus.mojo:properties-maven-plugin:read-project-properties schemaspy:schemaspy
Chúng tôi muốn nói với rằng tài sản của plug-in và buildNumber Plugin cần phải được thực hiện cho mỗi lệnh maven vì vậy chúng tôi có thể gõ:
$> mvn schemaspy:schemaspy
Có cách sạch sẽ để làm điều đó (không có kịch bản)?
Không bao giờ nghĩ về điều đó. Tôi thích nó. Cảm ơn. – noirbizarre
Xin lỗi, nhưng điều này không giúp tôi. Chúng ta có thể ràng buộc một mục tiêu vào một mục tiêu khác không? Tôi cần tính toán tên chi nhánh bằng cách sử dụng plugin trong ngữ cảnh phân nhánh cho bản phát hành. Nó sẽ là lạ để yêu cầu các nhà phát triển để kích hoạt một hồ sơ và chạy một giai đoạn vòng đời để tạo ra một chi nhánh, khi họ bình thường sẽ chỉ cần chạy 'phát hành: chi nhánh' ... –