将构建任务添加到 maven pom 项目
add build tasks to maven pom project
当前收集和打包资源的现有 Maven pom 项目 <packaging>pom</packaging>
需要扩展以验证某些资源。
在同一个项目中,我创建了一个 java-source 目录 src/main/java
,并在其中创建了一个小的 java class 来验证一些资源。另外我在pom中配置了maven-compiler和exec-maven插件。
java class 运行 在 IDE 中很好,但是当我这样做时它失败了 mvn clean install
它失败了,因为它找不到编译的 class 文件。这是因为 compile/test-compile 阶段不适用于 pom 打包的项目。
我的问题是:
- 我可以修改编译器插件以在与默认编译阶段不同的阶段执行(编译)吗? (我尝试添加执行标签但没有成功)
- 为什么执行 exec-maven 插件,因为它是在测试阶段定义的,根据文档,它不是 pom-package 的一部分。
- 在 pom 中 运行 这个验证任务还有其他可能性吗?
将包装从 pom 修改为 jar 是一个政治上的次优解决方案。
可以,可以配置maven-compiler-plugin在pom打包的package
阶段运行编译
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
<configuration>
<mainClass>com.example.validate.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
当前收集和打包资源的现有 Maven pom 项目 <packaging>pom</packaging>
需要扩展以验证某些资源。
在同一个项目中,我创建了一个 java-source 目录 src/main/java
,并在其中创建了一个小的 java class 来验证一些资源。另外我在pom中配置了maven-compiler和exec-maven插件。
java class 运行 在 IDE 中很好,但是当我这样做时它失败了 mvn clean install
它失败了,因为它找不到编译的 class 文件。这是因为 compile/test-compile 阶段不适用于 pom 打包的项目。
我的问题是:
- 我可以修改编译器插件以在与默认编译阶段不同的阶段执行(编译)吗? (我尝试添加执行标签但没有成功)
- 为什么执行 exec-maven 插件,因为它是在测试阶段定义的,根据文档,它不是 pom-package 的一部分。
- 在 pom 中 运行 这个验证任务还有其他可能性吗?
将包装从 pom 修改为 jar 是一个政治上的次优解决方案。
可以,可以配置maven-compiler-plugin在pom打包的package
阶段运行编译
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
<configuration>
<mainClass>com.example.validate.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>