Tôi hiện đang đấu tranh với Maven: Tôi có một dự án phức tạp được tạo thành từ nhiều mô-đun lồng nhau và một số mô-đun đó, tôi có cấu hình tương tự trong POM.Làm thế nào để chia sẻ các mảnh POM giữa các POM khác nhau
Tôi muốn làm cho nó sạch sẽ. Trên thực tế, tôi muốn xác định một cấu hình chung "runnable-jar" và kích hoạt nó trong một số module.
Đây là mảnh POM Tôi muốn chia sẻ giữa một số dự án:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- Use a custom descriptor, with suffix "bin" -->
<descriptors>
<descriptor>src/main/assembly/runnable-jar-assembly.xml</descriptor>
</descriptors>
<!-- Add main class to manifest -->
<archive>
<manifest>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
</configuration>
<!-- Add build of this package to lifecycle -->
<executions>
<execution>
<id>make-runnable-jar</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Trong một số POMS, tôi muốn để có thể làm điều gì đó như:
<!-- Set the main class -->
<properties>
<mainClass>my.main.Class</mainClass>
</properties>
<!-- Activate runnable jar build -->
<import>src/main/pom/runnable-jar-pom.xml</import>
tôi đã tìm kiếm trung bình để nhập một số đoạn XML vào một POM hoặc để xác định toàn bộ macro nodeset XML.
Đối với những gì tôi đã tìm thấy, giải pháp gần nhất là xác định cấu hình trong POM mẹ và kích hoạt nó trong một số mô-đun phụ bằng cách kiểm tra sự hiện diện của tệp. See this related question. Nhưng tôi đang đối mặt với vấn đề thuộc tính {basedir}
không được đặt chính xác được thừa kế/thiết lập.
Tôi thấy rất đáng ngạc nhiên khi cần phải hack để thực hiện điều gì đó cơ bản (= bình thường). Làm thế nào để bạn thường xử lý điều này trong Maven?
Tốt. Tôi không nhận thức được khả năng đó. –