Có "pha" hay "mục tiêu" Maven để thực hiện đơn giản phương thức chính của lớp Java không? Tôi có một dự án mà tôi muốn kiểm tra bằng tay chỉ bằng cách thực hiện một cái gì đó như "mvn run".
Có "pha" hay "mục tiêu" Maven để thực hiện đơn giản phương thức chính của lớp Java không? Tôi có một dự án mà tôi muốn kiểm tra bằng tay chỉ bằng cách thực hiện một cái gì đó như "mvn run".
Câu trả lời:
Xem plugin exec maven . Bạn có thể chạy các lớp Java bằng cách sử dụng:
mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
Việc gọi có thể đơn giản như mvn exec:java
thể cấu hình plugin nằm trong tệp pom.xml của bạn. Trang web plugin trên Mojohaus có một ví dụ chi tiết hơn .
<project>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>argument1</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
Thêm thuộc tính sau vào pom.xml
. Hãy chắc chắn rằng bạn sử dụng tên lớp đủ điều kiện (nghĩa là với tên gói) có chứa main
phương thức:
<properties>
<exec.mainClass>fully-qualified-class-name</exec.mainClass>
</properties>
Bây giờ từ thiết bị đầu cuối, kích hoạt lệnh sau:
mvn clean compile exec:java
LƯU Ý Bạn có thể truyền thêm đối số qua -Dexec.args="xxx"
cờ.
Các câu trả lời được đề cập ở trên là chính xác nhưng tôi đang đơn giản hóa nó cho các noobs như tôi. Đi đến tệp pom của dự án của bạn. Thêm một thuộc tính mới exec.mainClass
và đưa ra giá trị của nó là lớp chứa phương thức chính của bạn. Đối với tôi nó là DriverClass
trong mainpkg
. Thay đổi nó theo dự án của bạn.
Đã thực hiện điều này đến thư mục chứa dự án của bạn pom.xml
và chạy nó trên dấu nhắc lệnh mvn exec:java
. Điều này nên gọi phương thức chính.
Không cần thêm plugin mới trong pom.xml. Chỉ cần chạy lệnh này
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
Xem plugin maven exec để sử dụng nhiều hơn.
-Dexec.args="...arg..."
Hãy dùng thử Exec Maven
clean package exec:java -P Class_Containing_Main_Method
lệnh cũng là một tùy chọn nếu bạn chỉ có một phương thức Chính (PSVM) trong dự án, với Cài đặt Maven sau.
Đừng quên đề cập đến lớp học trong <properties></properties>
phần pom.xml
:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.main.class>com.test.service.MainTester</java.main.class>
</properties>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>${java.main.class}</mainClass>
</configuration>
</plugin>
Cấu hình chạy STS cùng với Cài đặt Maven ở trên:
-P
là cho hồ sơ. Đã chia sẻ điều này, vì nó cũng là một tùy chọn chạy dự án Maven.